预编译

     改变了当前预处理器的当前行和文件名称。对应着两个宏__FILE____LINE__

#line lineno
#line lineno “filename”
int main()
{
#line 777  "i'm here.cpp"
	assert("love" == "don't love");
	return 0;
}

    #error error_message

int main()
{
int i = 2;
#ifndef IKDJFO
#error i don't know, i'm tired
#endif
return 0;
}

    error_message不是必须使用引号包含起来。

#if expression

#ifdef expression

#ifndef expression

#elif expression

#else

#endif

#define identifier replacement-list

#define identifier(parameters) replacement-list

#define identifier(parameters,...) replacement-list

#define identifier(...) replacement-list

#undef identifier

     #进行字符串化,所有开始的和结束的空白字符忽略掉,中间的多个空白字符被移除。

#define warnmessage(x) #x
int main()
{
puts(warnmessage(    th  ewor   d"dfasf"      ));  /*th ewor d"dfasf"*/
return 0;
}

##将两个子串联结起来,从而形成一个新的子串。

#define paster(n) printf("token"#n"=%d",token##n);
int main()
{
int token9 = 9;
paster(9);
return 0;
}

    预先定义常用的几个宏

     __cplusplus    表示C++的版本号

    __FILE__     当前的文件名称

    __LINE__     当前的行号

    __DATE__    本地机器的当前日期

    __TIME__    本地机器的当前时间

    #include <filename>   只到标准的包含目录中查找

    #include “filename”   先到当前的文件目录查找,再到标准的包含目录中查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值