C語言宏定義的規則如下:
宏定義是使用#define
關鍵字進行定義的,其格式為:#define 宏名 替換文本
宏定義通常放在源代碼的開頭部分,可以在任何地方使用。
宏定義是簡單的文本替換,沒有類型檢查、語法檢查和作用域的限制,不能定義多行的宏。
宏名后面不需要加分號,宏定義不是C語句,不需要以分號結尾。
宏定義可以嵌套使用,但要注意嵌套層數不要過多,以免產生難以維護的代碼。
宏定義中可以使用參數,參數可以在替換文本中使用,參數用括號括起來,多個參數用逗號分隔。
宏定義中的參數是無類型的,在使用參數時要謹慎避免產生不符合預期的結果。
宏定義中的替換文本可以包含預定義的宏,如__FILE__
、__LINE__
等。
在宏定義中可以使用條件編譯語句,如#if
、#ifdef
等。
宏定義可以取消,使用#undef
關鍵字取消已定義的宏。
需要注意的是,宏定義在預處理階段進行文本替換,因此宏定義的替換是簡單的文本替換,并不會進行運算或判斷。在使用宏定義時,要注意避免產生意外的替換結果。