C语言程序设计中,为防止头文件在同一编译单元被重复引用,常引入#ifndef宏来进行保护,如:头文件my_head.h
#ifndef _MY_HEAD_H_ //如果没有定义宏_MY_HEAD_H_#define _MY_HEAD_H_ //则,定义该宏名
//以下是被保护的代码区
//进行相应的全局变量和结构体类型定义
typedef struct stu {
int a
int b
} STU
#endif //宏判断结束
这样,当整个代码中,多次引用这个my_head.h时,只有一次是生效的,系统编译时,如果检查宏_MY_HEAD_H_ 已经定义,就不会再进入被保护的代码区了。
PS: 宏名,一般是与头文件名相同,只是把字母全大写,前后加上下划线(_)
#ifndef _INC_STRING #define _INC_STRING 然后是声明一类的东西。 最后是 #endif /* _INC_STDIO */ 这里结束_INC_STRING,这样的作用就是防止重复包含同一个头文件,当编译器发现_INC_STRING未被定义,就会执行中间的部分,当_INC_STRING已经被定义,中间那部分就不会执行了。 你的头文件可以这样: #ifndef _DEFINE #define _DEFINE struct book { char bkname[20] int num float price char author[20] char state char borrower[20] char sex int stunum struct book *next }typedef struct book BOOK#endif 这样就可以防止头文件被重复包含。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)