C/C++预处理命令

  1. 防止重复包含头文件


#ifndef __文件名大写_H__
#define  __文件名大写_H__
#endif //  __文件名大写_H__

// c++
pragma once 较老编译器不支持,

以上两种方法都行。
优缺点:

  1. 第一点,可以针对部分代码,所有编译器都支持。缺点时要写很多
  2. 第二点,代码简洁,缺点较老编译器不支持。
#if, #ifdef, #ifndef, #else, #elif, #endif 
// 这些命令让编译器进行简单的逻辑控制. 当一个文件被编译时, 你可以使用这些命令使某些行保留或者是去处. 

    #if expression			//如果表达式(expression)的值是"真"(true),那么紧随该命令的代码将会被编译. 

    #ifdef macro			//如果"macro"已经在一个#define声明中定义了, 那么紧随该命令的代码将会被编译. 

    #ifndef macro			//如果"macro"未在一个#define声明中定义, 那么紧随命令的代码将会被编译. 

//一些小边注: 命令#elif是"elseif"的一种缩写,并且他可以想你所意愿的一样工作. 你也可以在一个#if后插入一个"defined"或者"!defined"以获得更多的功能. 

//这里是一部分例子: 
    #ifdef DEBUG
      cout << "This is the test version, i=" << i << endl;
    #else
      cout << "This is the production version!" << endl;
    #endif

	//你应该注意到第二个例子比在你的代码中插入多个"cout"进行调试的方法更简单. 

posted @ 2022-11-22 13:38  健康的大白菜  阅读(31)  评论(0)    收藏  举报