2011-03-06 56 views
1

我在C++中編程,我將變量定義爲宏,並且我想從使用宏的函數返回值。在循環條件中使用宏

出於某種原因,編譯器說我有語法錯誤。我正在使用Linux。

#include <iostream> 
#define FACTOR 10; 
int dosomthing(){ 
    return (FACTOR/2); 
} 

任何關於可能出錯的建議?

+0

編譯器說什麼? – sth 2011-03-06 16:05:51

+1

不要在#define FACTOR 10;' – irritate 2011-03-06 16:05:54

+0

末尾加分號在99%的情況下,在C++中使用宏是沒有道理的。他們是[4x邪惡](http://www.parashift.com/c++-faq-lite/inline-functions.html#faq-9.5)。 – 2011-07-21 06:24:26

回答

9

宏被替換。所以,最後你會得到

return (10;/2); 

從宏只需卸下;,你會沒事的。

5

static const int FACTOR = 10;是在C++中執行此操作的更好方法。

+0

但更改名稱,使它不是全部大寫。否則它可能會被一個宏擾亂:-) – 2011-03-06 16:34:36