【C语言】预处理器

C预处理器:

指令描述
#define定义宏(MACRO)
#include包含一个源代码文件
#undef取消已定义的宏
#ifdef如果宏已经定义,则返回真
#ifndef如果宏没有定义,则返回真
#if如果给定条件为真,则编译下面代码
#else#if 的替代方案
#endif结束一个if..else条件编译块
#error当遇到标准错误时,输出错误消息
#pragma使用标准化方法,向编译器发布特殊的命令到编译器中

运用:

#define MIN_ARRAY_COUNT 20;

这个指令告诉CPP把所有MIN_ARRAY_COUNT替换为20;

#define  SIMPLE_SUM_METHOD(x)  \
    ((x) * (x)) 

如果宏太长,一个单行容纳不下,则使用宏延续运算符(\);

#include <stdio.h>
#include "myBook.h"

这个指令告诉CPP从系统库中获取stdio.h,并添加到当前源文件中;
在本地目录查找myBook.h文件,并添加到当前源文件中;

#undef  MIN_ARRAY_COUNT;
#define MIN_ARRAY_COUNT 40;

#undef指令先取消已定义的宏MIN_ARRAY_COUNT,#define MIN_ARRAY_COUNT 40 再次定义宏MIN_ARRAY_COUNT为40;

#ifndef MIN_ARRAY_COUNT
   #define MIN_ARRAY_COUNT 20
#endif

这个指令告诉 CPP 只有当 MIN_ARRAY_COUNT 未定义时,才定义 MIN_ARRAY_COUNT。

#ifdef DEBUG
    #define MIN_ARRAY_COUNT 40
#endif

这个指令告诉 CPP 如果定义了 DEBUG,则执行处理语句。在编译时,如果您向 gcc 编译器传递了 -DDEBUG 开关量,这个指令就非常有用。它定义了 DEBUG,您可以在编译期间随时开启或关闭调试。

预定义宏

描述
__DATE__当前日期, 以 “MMM DD YYYY” 格式表示的字符常量
__TIME__当前时间,以 “HH:MM:SS” 格式表示的字符常量
__FILE__当前文件名,一个字符串常量
__LINE__当前行号,一个十进制常量
__STDC__编译器以 ANSI 标准编译时,则定义为 1
#include <stdio.h>

int main() {
    printf("File :%s\n", __FILE__ );
    printf("Date :%s\n", __DATE__ );
    printf("Time :%s\n", __TIME__ );
    printf("Line :%d\n", __LINE__ );
    printf("ANSI :%d\n", __STDC__ );
    return 0;
}

结果:(Xcode运行结果)

File :/Users/wangyong/Desktop/CCalculate/CCalculate/main.m
Date :Apr  1 2017
Time :22:37:59
Line :159
ANSI :1
Program ended with exit code: 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值