预定义符号

__FILE__;//路径加文件名
__LINE__;//当前代码行号
__DATE__;//日期
__TIME__;//时间
__FUNCTION__;//当前函数名

#define

语句结束最好不加分号。

#define定义宏

#define name(参数) 表达式

定义宏的时候要考虑预算符优先级的影响,不要吝啬括号

栗子1--#

#define PRINT(X) printf("The value of" #X "is %d\n",X)
int main()
{
  int a=10;
  int b=20;
  PRINT(a);
  PRINT(b);
}

此处的X替换为a和b对应的值, 而 #X 替换为'a'和'b'

C语言--define定义_文件名

栗子2--##

#define BL(X,Y) X##Y
int main()
{
  int age=200;
  printf("%d\n",BL(a,ge));
  //等价于printf("%d\n",age);
}

暂时不知道有什么鸟用。