C++另一种注释

块注释符(//)是不可以嵌套使用的。

此外,我们还可以使用 #if 0 … #endif 来实现注释,且可以实现嵌套,格式为:

  1. #if 0
  2. code
  3. #endif

你可以把 #if 0 改成 #if 1 来执行 code 的代码。

这种形式对程序调试也可以帮助,测试时使用 #if 1 来执行测试代码,发布后使用 #if 0 来屏蔽测试代码。

#if 后可以是任意的条件语句。

下面的代码如果 condition 条件为 true 执行 code1 ,否则执行 code2。

  1. #if condition
  2. code1
  3. #else
  4. code2
  5. #endif
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. cout << "Hello World!" <<endl;
  5. #if 1
  6. cout << "Hello World!" <<endl;
  7. #endif
  8. }

头文件

预处理器

确保头文件安全工作的是预处理器,预处理符号是#,而且预处理语句会无视作用域规则。

  1. //mydata.h
  2. #pragma once
  3. #ifndef MYDATA
  4. #define MYDATA //头文件保护符必须唯一,否则出现错误。
  5. class MYDATA {
  6. public:
  7. int m_a;
  8. };
  9. #endif

一旦#define被预编译器处理,那么再执行#ifndef时就会跳过,所以可以保证不会重复包含,
#progma once是另一种文件的包含形式,这种写法只会包含文件,但是不具有可移植性。但是效率会更高