美文网首页
头文件保护符

头文件保护符

作者: Ginkgo | 来源:发表于2019-11-28 20:55 被阅读0次

头文件应该含有保护符,即使这些头文件不会被其他头文件包含。编写头文件保护符并不困难,而且如果头文件被包含多次,它可以避免难以理解的编译错误。

利用宏定义和条件编译#ifndef指示检测指定的预处理变量是否未定义。如果预处理器变量未定义,那么跟在后面的所有指示都被处理,直到出现#endif
可以使用这些措施来预防多次包含同一头文件:

    /*** 头文件salesitem.h ***/
    #ifndef SASESITEM_H
    #define SALESITEM_H
    //...这里是内容
    #endif

条件指示#ifndef SALESITEM_H测试 SALESITEM_H预处理器变量是否未定义。如果 SALESITEM_H 未定义,那么 #ifndef测试成功,跟在 #ifndef 后面的所有行都被执行,直到发现#endif。相反,如果 SALESITEM_H已定义,那么 #ifndef 指示测试为假,该指示和 #endif指示间的代码都被忽略。

为了保证头文件在给定的源文件中只处理过一次,我们首先检测 #ifndef。第一次处理头文件时,测试会成功,因为 SALESITEM_H 还未定义。下一条语句定义了 SALESITEM_H。那样的话,如果我们编译的文件恰好又一次包含了该头文件。#ifndef指示会发现 SALESITEM_H已经定义,并且忽略该头文件的剩余部分。

当没有两个头文件定义和使用同名的预处理器常量时,这个策略相当有效。我们可以为定义在头文件里的实体(如类)命名预处理器变量来避免预处理器变量重名的问题。一个程序只能含有一个名为 Sales_item的类。通过使用类名来组成头文件和预处理器变量的名字,可以使得很可能只有一个文件将会使用该预处理器变量。

参考https://blog.csdn.net/geeglet/article/details/8174608

相关文章

  • 头文件保护符

    头文件应该含有保护符,即使这些头文件不会被其他头文件包含。编写头文件保护符并不困难,而且如果头文件被包含多次,它可...

  • C++ supplement 预处理器之头文件保护符

    这是在实际应用中比较常见的用法,自己在些相关的头文件时也时常会用到头文件保护符,以避免头文件被多次包含的情况。另外...

  • 护符

    向上的三角形是山的形状,摩西在山上领受了妥拉。 诗121:1我要向山举目:我的帮助从何而来? Yod Yod-He...

  • 锦鲤护符

    (一) 城西老李家门外,一红衣女子鬼鬼祟祟地透过门缝往屋内瞧去,不时皱皱眉头,嘴里叨叨着“怎么没有呢?” 冷不丁的...

  • sizeof与strlen的区别

    1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保...

  • 水洗唛维护符号

  • iOS原生定位

    1、导入框架 2、添加头文件 3、声明和代理 4、初始化 5、开始定位 6、代理回调 注意事项: 1、用户隐私的保...

  • Linux Kernel学习004——内核开发特点

    相对与在用户空间内的应用开发,内核开发有很多独特之处: 不能访问C库和标准C头文件 必须使用GNU C 没有内存保...

  • ios之保存图片到相簿

    需要导入的头文件 self的两个属性 创建的相簿的名字 然后实现下面的几个方法就可以了:这是保存按钮的点击事件 保...

  • SDK开发

    概述 SDK定义上是指软件开发包,对应iOS端来说就包含了库文件、头文件、资源文件等文件的集合。SDK开发就是在保...

网友评论

      本文标题:头文件保护符

      本文链接:https://www.haomeiwen.com/subject/vejiwctx.html