宏定义就是简单的替换,不作为计算,不也作为表达式。
预处理指令包括:宏定义、文件包含、条件编译。
普通的宏定义其实就是我们理解的宏常量。
#define 标识符 字符串
把标识符替换为字符串.主要只是替换,不增加任何的代码。
#define ADD(a,b) a+b
宏定义函数
#include<stdio.h>
#define CALL(f,p) (printf("Call function %s\n", #f), f(p))
int square(int n)
{
return n * n;
}
int f(int x)
{
return x;
}
int _tmain(void)
{
int a = 100;
//printf()会打印后面的数字
printf("%d %d\n", (1, 2, 5), 1);
printf("1. %d\n", (printf("Call function %s\n", "xx"), f(4)));
printf("1. %d\n", CALL(square, 4));
printf("2. %d\n", CALL(f, 10));
return 0;
}
#define STRING(s) name_##s
STRING(number1) 就等价于 name_number1