梳理一下 C语言(一)

196 阅读1分钟

C语言的预处理

1.简单宏替换

定义

#define INT_SIZE sizeof(int)

优点:

  1. 减少不必要的修改,提升程序的可预读性.
  2. 提升代码的可移植性

undef

** 设定宏名的作用域**

2.带参数的宏替换

定义

#define 宏名(参数表) 字符串

注意事项;

  1. 宏名和参数表的括号间不能有空格
  2. .宏替换只做替换,不做计算和表达式求解,这一点要格外注意。
  3. 函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内存。
  4. 宏的哑实结合(哑实结合类似于函数调用过程中实参替代形参的过程)不存在类型,也没有类型转换。

可变参数

#define print(……) printf(__VA_ARGS__)

3.带参数的宏替换

例子;

#define N 3
#define N_CUBE N*N*N
#define CUBE_ABS((N_CUBE>0)?(N_CUBE):-1*(N_CUBE))