2013-11-28 50 views
0

定義宏時(例如#define BALL)。爲什麼人們使用大寫字母?我可以寫一些像#define ball。它不是大寫字母,但它的工作原理。#define:爲什麼要大寫?

+8

對於宏的使用大寫是一個命名約定。預處理器可以處理宏名稱中的任何情況(上,下,混合)。 –

回答

5

這是慣例。使閱讀和理解代碼更容易。這不是必需的,但建議。

+1

很多很多感謝我的理解! – nicael

3

爲什麼使用_作爲長變量名?你爲什麼不把變量命名爲a or b,因爲它很容易理解和調試。

使用變量名稱如TotalHeight比簡單i更有意義。有些人甚至以數據類型爲前綴,如Int_TotalHeight。它很容易維護代碼。

要回答你的問題,人們使用它來獲得更多的理解。一般

1)爲了區分變量的名稱和宏名稱

#define MAX 45 // easy to understand, it is a macro 
int max=45; 

2)從宏區分功能。說

#define MULT(x, y) (x) * (y) 
int mult(int,int); 
+1

歡迎@nicael,更具體地說,宏是常量。常量通常用大寫字母表示:) – niko

2

這是今天的另一個問題:Can't figure out this "called object is not a function" C time error。在這裏,OP做了#define time (24 * 60 * 60),並且在time(something)不能編譯時感到驚訝。

幾乎沒有什麼標準的C是全部大寫的,所以通過使你的宏全部大寫,你可以避免衝突。由於預處理器正在執行令牌替換,因此碰撞通常會產生非明顯或未檢測到的錯誤。

+0

缺少衝突的原因不在於標準不使用大寫。這是因爲標準以'_'爲前綴,然後保留它們。 – Shahbaz

1

這是一種習慣。你可以寫成大寫和小寫。