编译预处理指令

//
//  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;
}

文件包含就不写了。。。

标签: c

添加新评论