我試圖用下面的公式做一個宏:(a^2/(a+b))*b
,我想確保不會有零除。是否有可能在#define中使用if語句?
#define SUM_A(x, y) if(x == 0 || y == 0) { 0 } else { (((x * x)/((x) + (y))) * (y))}
,然後我叫宏內部主:
float a = 40, b = 10, result;
result = SUM_A(a, b);
printf("%f", result);
我試着使用括號周圍IF函數,但我一直在if語句之前得到語法錯誤。我也嘗試過使用return,但是我在某處讀過你不應該在define中使用它的地方。
說到括號,不應該是'(x)*(x)','(x)== 0'和'(y)== 0'嗎?確實是 – SirGuy
。感謝您指出了這一點。 – tomahh
非常感謝,我從來沒有聽說過這個運營商。 – Frey1337