zoukankan      html  css  js  c++  java
  • C++ :define、ifndef、ifndef和endif

    C++为了使一个类能在多个文件中用可以使用头文件,经常在头文件中看到ifndef和endif,现在看看它有什么作用。

    预处理器

    我们先来了解下和它息息相关的预处理器。预处理器是确保头文件被多次包含还能安全工作的技术。比如说 #include 就是预处理功能,当编译器看到#include时就会用头文件的内容代替它。

    然后还有一个预处理功能是头文件保护符,这个功能依赖于预处理。

    预处理有两种状态:已定义和未定义。

    所以下面有三个指令:
    #define : 将一个名字设为预处理变量,经常用来设定一些值,但是为了高效C++应该尽量少用。

    #ifdef : 当变量已经定义时为真。

    #ifndef : 当变量未定义时为真 。

    ifdef和ifndef指令若为真后续操作都会执行到 #endif 出现前。

    #ifndef TEST_H
    #define TEST_H
    #include<cstring>
    class Test{
      .......  
    }
    #endif

    例如以上代码,当第头文件一次导入头文件时 #ifdef的值检查为真,预处理器就会顺序执行到#endif,第二次导入时,值为假,就不会执行后面的部分了。

    最好的开始时间是以前,其次是现在。
  • 相关阅读:
    Docker
    Docker
    VIM
    Python
    Python
    VIM
    Python
    其他
    Java
    Java
  • 原文地址:https://www.cnblogs.com/dragonsbug/p/13639223.html
Copyright © 2011-2022 走看看