我在編寫代碼時發現了一些有趣的東西。我在我的代碼中定義了一個宏,並意外地使用關鍵字int
作爲該宏的參數的變量名稱。代碼工作得很好,但我對此感到有點驚訝。我讀過C中的關鍵字是保留字,不能用作變量名。可能宏參數的名稱是關鍵字嗎?
這是我的代碼:
#include <stdio.h>
#define PRINT(int) printf("%d",int)
int main()
{
int x=2;
PRINT(x);
return 0;
}
任何人都可以解釋我爲什麼會工作的罰款?關鍵字是否被保留並且不能用作C中的變量名,或者這是C中宏的一個例外嗎?
這意味着我可以使用任何關鍵字宏,它會正常工作,對不對?這個東西只對C中的宏有效嗎? – 2012-04-06 11:47:14
@dark_shadow:預處理器不知道C,所以就它而言*有*沒有關鍵字(所以是的,你可以使用任何東西)。它在C和C++中有效。 – Jon 2012-04-06 11:48:40
感謝Jon清除懷疑。 – 2012-04-06 11:53:14