今天我剛剛完成了關於如何使用#define
創建清單常量的閱讀和試驗C,之後出現了一些問題,而下面是代碼。以奇怪的方式使用#define預處理器指令
#include <stdio.h>
#define dummy main
#define yam {
#define apple }
int dummy(void) //constant substitution main with dummy
yam // constant substitution { with yam
printf("It works!!\n");
return 0;
apple //constant substitution } with apple
正如預期的那樣,它的作品般的魅力,我只是想知道爲什麼這樣的事情並沒有引起任何錯誤,也許我可以理解爲什麼main()
可以被替換,因爲main
是傳遞給函數的標識符(名字,變量和常量),但爲什麼{}
也可以用一個符號名稱代替?第二件事是,什麼數據類型C用來存儲這個符號常量,它不是一個字符在單引號""
中,也不是一個整數或浮點數。
對於所有神聖的愛,不要以這種可怕的方式濫用預處理器! – Philip 2011-04-22 09:57:04
哈哈@菲利普,我只是感到好奇,所以我做了這個,我不認爲我不會用這種方法編碼任何軟件 – caramel1995 2011-04-22 10:32:49
因此,什麼樣的數據類型文本{和}存儲?因爲我沒有用單引號括起來 – caramel1995 2011-04-22 10:47:05