头文件保护
在编译C++程序时,编译器自动定义了一个预处理器名字__cplusplus(两个下划线).因此我们可以根据它来判断是否为C++程序,以便有条件的包含一些代码
#ifndef HEAD_H
#define HEAD_H
//头文件内容
#endif
在有些代码中我们可以看到这样的代码
#ifdef DEBUG
//...
#endif
如果程序定义了预编译器DEBUG名字,程序将执行中间部分的代码
在编译C++程序时,编译器自动定义了一个预处理器名字__cplusplus(两个下划线).因此我们可以根据它来判断是否为C++程序,以便有条件的包含一些代码
#ifdef __cplusplus
//不错,我们要编译C++
extern "C"
#endif
在编译标准C时,编译器将自动定义名字__STDC__。当让__cplusplus与__STDC__不会同事被定义
另外两个比较有用的预定义名字是:__LINE__和__FILE__。__LINE__记录文件已经被编译的函数, __FILE__包含正在被编译的文件的名字
可以这样使用它们
if (element_count == 0)
cerr << Error:&