编译预处理指令
宏
//
// main.c
// 编译预处理指令
//
// Created by admin on 16/4/1.
// Copyright © 2016年 jin. All rights reserved.
//
#include <stdio.h>
/**
源码 -> 编译预处理 -> 编译 -> 链接 -> 运行
编译预处理:在编译前进行解析处理的指令
1.宏 #define
1.1.带参数 #define SUM(num1,num2) num1 + num2 ,在出现运算符的时候,因为宏只是做了下替换,所以需要注意下运算符的先后执行顺序
1.2.不带参数 #define NAME "小芳"
2.条件编译
3.包含 #include
*/
#define NAME "小芳"
#define SUM(num1,num2) num1 + num2
int main(int argc, const char * argv[]) {
// insert code here...
printf("%s\n",NAME);
printf("%i\n",SUM(1, 2));
return 0;
}
条件编译
//
// main.c
// 条件编译
//
// Created by admin on 16/4/1.
// Copyright © 2016年 jin. All rights reserved.
//
#include <stdio.h>
// 满足条件的代码才会被编译
#define MY_TEST_DEBUG 1// 不注释,main里面的会输出内容,否则,什么也不输出
#ifdef MY_TEST_DEBUG// 判断宏是否定义了
#define LOG(formatter,...) printf(formatter,## __VA_ARGS__)
// __VA_ARGS__ 固定写法,表示多参数
// ## 表示可以不戴参数
#else
#define LOG(formatter,...)
#endif
int main(int argc, const char * argv[]) {
// insert code here...
LOG("Hello, World!\n");
return 0;
}
文件包含就不写了。。。