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

对头文件中条件编译#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更方便;

 
posted @ 2023-01-11 22:16  第五名  阅读(312)  评论(0)    收藏  举报