深入理解c++11读书笔记
第二章:保持稳定性和兼容性
1.1__func__预定义符
__func__预定义标识符,其基本功能:返回所在函数的名字
#include<string>
#include<iostream>
//__func__ 预定义标识符对于轻量级的调试代码具有十分重要的作用
const char* hello(){
return __func__;
}
const char* world(){
return __func__;
}
int main(){
std::cout<<hello()<<","<<world()<<std::endl;
}
>>hello,world
1.2Pragma 操作符
#pragma once
那么该指令会指示编译器(如果编译器支持),该头文件应该只被编译一次。这与使用如下代码来定义头文件所达到的效果是一样的。
#ifndef THIS_HEADER
#define THIS_HEADER
// 一些头文件的定义
#endif
在 C++11 中,标准定义了与预处理指令 #pragma 功能相同的操作符 _Pragma。
1.3变长参数的宏定义以及 VA_ARGS
变长参数的宏定义是指在宏定义中 参数列表的最后一个参数为省略号,而预定义宏 __VA_ARGS__ 则可以在宏定义的实现部分替换省略号所代表的字符串