0
我需要做同樣的事情在幾個陣列,不同類型的Ç。C預處理保持多行
使用void *
我寫了將接收所有類型的函數:
void
floatarraymanip(void *inarray)
{
float *array=(float *)inarray;
[SEVERAL LINES OF OPERATIONS]-------------
} |
|
void |
longarraymanip(void *inarray) ----> Same
{ |
long *array=(long *)inarray; |
|
[SEVERAL LINES OF OPERATIONS]-------------
}
void
arraymanip(void *array, char *arraytype)
{
if(strcmp(arraytype,"FLOAT")==0)
floatarraymanip(array);
if(strcmp(arraytype,"LONG")==0)
floatarraymanip(array);
}
的[SEVERAL LINES OF OPERATIONS]
是完全一樣的和相對較長(約50行)。我還需要爲其他幾種類型執行此操作,從而使我的源代碼的當前版本非常長!
所以我的問題是這樣的:有什麼辦法,我可以保持在預處理所有這些行一個命令,只是調用處理器變量在所有這些功能使程序變得更短,更具可讀性?
簡單地將它們定義爲功能? – herohuyongtao
預處理函數? – makhlaghi
爲什麼不抽象掉'[操作幾行]',使之成爲功能。它將有助於調試,維護和保持代碼清潔。長功能宏很難維護。 – ajay