对头文件中条件编译#ifndef __HEAD_H__ ... 的理解


#ifndef    __HEAD_H__ 

#define    __HEAD_H__
...    // 头文件内容
#endif

 

  • 首先,使用该条件编译的目的是:防止该头文件重复引用。
比如,即使在主函数中写了两行#include "head.h”,该文件也只会被包含一次,如果头文件head.h中没有上面的条件编译,则会包含了2次,有可能会报错(是否报错要看具体的编译器,有些编译器不会报错)。
  • __HEAD_H__ 仅仅是一个标识,只要符合C语言标识命名规则,可以写任意命名,为了易读性,一般都会与头文件名一致。
  • 其中的前两个下划线与后两个下划线__没有任何语法上的意义,有些资料说是系统自带的头文件会前后各加两个下划线__,用户自己编写的头文件可以不用双下划线__,以表示与系统头文件的区别。
  • 最后HEAD_H中的下划线_表示头文件“HEAD.H”中的点,在C的语法中,“.”不能作为标识中的字符,所以用“_”表示“.”。

 多谢评论提示,使用#pragma once更方便;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM