一行#define语句定义了一个符号名或者一个符号常量(symbolic constant)为一个特别/特定的字符串(string):

#define name replacement-text

自此以后, 所有出现name(不包括引号""里的name或者其它名字中的一部分包含name的情况)的地方都由replacement-text替换。
name跟变量名(variable name)有着一样的形式: 由一个字母开头的一组字母和数字组成的序列。
至于replacement-text1可以是任何一组由字符(character)组成的序列。 符号常量(symbolic constant)通常写成大写形式以更容易地和小写的变量名(variable name)区别开来。
此外, 要注意#define语句结尾是没有;的。

例如:

#define HALLO 123
  1. 根据C Language #define directive里的介绍, replacement-text可以是:

  • 数字(Number): #define NUMBER 10
  • 字符串(String): #define ADDRESS "wzd.hk"
  • 表达式(Expression): #define ONEPLUSPNE (1+1)

参考: 《The C Programming Language》- Chapter 1.4