C语言中宏的定义与使用
三种类型的预处理指令
宏定义
宏是比较常用的一种预处理指令,这里我们主要讨论带参数的宏。
带参数的宏(函数式宏)定义如下:
#define EXAMPLE(x,y,z) 替换列表
注意:在宏的名字和左括号之间没有空格。
宏的优点:
-
程序可能会更快一些;
-
宏更同意。
宏的缺点:
-
编译后代码通常会变大。
-
宏的参数没有类型检查。
-
无法用指针来指向一个宏。
-
宏可能会不止一次地计算它的参数。
文件包含
条件编译
适用于预处理指令的规则
-
指令都以 # 开始
-
在指令的符号之间可以插入任意数量的空格和水平制表符。
-
指令总是在第一个换行符处结束,除非明确地指明要延续。
-
指令可以出现在程序的任何地方。
-
注释可以与指令放在同一行。
# include<stdio.h>
# define PRINT_INT(n) printf(#n " = %d\n", n)
# define PRINT_CHAR(s) printf(#s "%s\n",s)
int main(int argc,char *argv[]){
int i = 4 , j = 5;
char str[] = "Ivan";
PRINT_INT(i/j);
PRINT_CHAR(str);
return 0;
}
未完待续… …