我想要做的是使用未知變量填充特定矩陣的值。以下哪個實現更快?
這是第一個實現:
#define PHI(I,J,K) phi[xlength*ylength*(I)+xlength*(J)+(K)] //Macro that calls function
其中Phi是維一維矩陣xlength * ylength * tlength
或
phi= new double[xlength*ylength*tlength]; //code for phi
另一種選擇是定義的功能等
void PHI(double *&phi, int &I, int &J, int &K, double &value) //declare function
{
phi[xlength*ylength*I+xlength*J+K]=value; //return specific value of phi
}
我會用宏或功能是這樣的:
for (int i=0;i<tlength;i++) //just making a loop here
{
for (int j=0;j<ylength;j++)
{
PHI(i,j,1)= stuff here //The macro or the function would go here
}
}
所以我在做什麼要麼使用宏指向矩陣披[]的特定細胞或我使用了一個函數來填充矩陣phi []的特定值。
哪個更快?
通過基準程序找出它。堆棧溢出成員可能很聰明,但他們的大腦當然不具備現代CPU的計算能力。 – 2013-05-17 17:47:42
噢好吧。哈哈!我只是檢查將所有這些東西傳遞給函數還是簡單地使用宏將會更快。如果它是未知的,我想我可以測試它。 – Mechy
@ H2CO3,但我可以用這種方式使用宏,對吧?可以從宏內的for循環獲取變量,對嗎? – Mechy