(1)与C99兼容

    C11之前最新C标准是C99。而第一个C++标准出现在1998年(常被称为C++98),随后C++03也只是对C++98做小范围修正。C++11增加了对C99特性的支持:

    C99中预定义宏,包括 STDC_HOSTEDSTDCSTDC_VERSIONSTDC_ISO_10646

    func预定义标识符,作用返回所在函数名字,C++11中允许定义在类或结构体函数中,但是不允许做为函数参数的默认值;

    _Pragma操作符,C++标准中pragma是一条预处理指令,C++11中定义了与gragma功能相同的操作符_Pragma,它支持在宏中展开,具有更大的灵活性;

    不定参数宏定义以及VAARGS,C99中变长参数由三个省略号表示,而预定义宏VAARGS可在宏定义的实现部分替换省略号代表的字符串,比如 #define PR(…) printf(VAARGS);

    宽窄字符串连接,之前的C++标准中,将窄字符串转换成宽字符串是未定义行为,而在C++11中,明确规定将窄字符串和宽字符串进行连接时,会先把窄字符串转换成宽字符串,然后再与宽字符串连接;