预处理指令和预定义宏

#ifdef和#else

特别注意*:#ifdef和#endif是成对出现的

例子:

#ifdef UNICODE
    wchar_t a;
#else
    char a;
#endif

特别注意*:这里的UNICODE 要大写。想要更改UICODE 版本,属性->高级->字符集,里面修改。这里的#ifdef也可以直接写成#if,用法和if ,else是一样的

预定义宏

不同编译器预定义的宏是不一样的

_func_

编译器支持ISO C99和ISO C++11指定的预定义标识符

含义:函数的名称

int main()
{
    std::cout<<_func_;
}

输出结果为 main

C99和C++17标准指定的宏

C++标准委员和C标准委员会要求定义的宏

_DATE_

源文件的编译日期

_TIME_

当前转换单元的转换时间

_FILE_

源文件的名称

_cplusplus_

当翻译单元为c++时,_cplusplus文本定义为一个整数文本,否则为未定义

MSVC指定的宏

MSVC可以理解为微软的VC编译器,下面的这些宏仅在MSVC,即VS下有效

_CHAR_UNSIGNED

如果char为无符号,则宏定义为1,否则为未定义。因为char的取值范围可能为-128~127,也可能时0~255,这是由编译器决定的

COUNTER_

每次使用这个宏后,宏的值就会加1

_DEBUG_

如果编译器为debug模式,则定义为1,否则未定义

_FUNCTION

函数名称,不含修饰名

_FUNCDNAME

函数名称,包含修饰名

_FUNCSIG

包含函数签名的函数名。函数签名:调用约定、返回值、函数参数等基本信息

_WIN32

编译器为32、64位,定义为1,否则未定义

_WIN64

编译器为64位,定义为1,否则未定义

_TIMESTAMP_

最后一次源代码修改的时间和日期

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值