第七节 模板(Templates)(10)
----------------------------------
#pragma
这个指令是用来对编译器进行配置的,针对你所使用的平台和编译器而有所不同。要了解更多信息,请参考你的编译器手册。
如果你的编译器不支持某个#pragma的特定参数,这个参数会被忽略,不会产生出错。
预定义的宏名称 (Predefined macro names)
以下宏名称在任何时候都是定义好的:
macro |
value |
__LINE__ |
整数值,表示当前正在编译的行在源文件中的行数。 |
__FILE__ |
字符串,表示被编译的源文件的文件名。 |
__DATE__ |
一个格式为 "Mmm dd yyyy" 的字符串,存储编译开始的日期。 |
__TIME__ |
一个格式为 "hh:mm:ss" 的字符串,存储编译开始的时间。 |
__cplusplus |
整数值,所有C++编译器都定义了这个常量为某个值。如果这个编译器是完全遵守C++标准的,它的值应该等于或大于199711L,具体值取决于它遵守的是哪个版本的标准。 |
例如:
// 标准宏名称
#include <iostream>
using namespace std;
int main()
{
cout << "This is the line number "
<< __LINE__;
cout << " of file " << __FILE__
<< ".\n";
cout << "Its compilation began "
<< __DATE__;
cout << " at " << __TIME__ << ".\n";
cout << "The compiler gives a "
<<"__cplusplus value of "
<< __cplusplus;
return 0;
} |
This is the line number 7 of file /home/jay/stdmacronames.cpp.
Its compilation began Nov 1 2005 at 10:12:29.
The compiler gives a __cplusplus value of 1 |
|
----------------------------------