C语言头文件条件编译避免重复引用
原创xr_zy1110 最后发布于2016-04-14 17:35:54 阅读数 4849 收藏
展开
条件编译:条件编译属于三种宏定义中的一种,条件指示符的最主要目的是防止头文件的重复包含和编译,例如:一个c文件包含同一个h文件多次,如果不加#ifndef宏定义,会出现变量重复定义的错误。
指令 用途
# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个#if……#else条件编译块
#error 停止编译并显示错误信息
一、文件包含
为了避免那些只能包含一次的头文件被多次包含,可以在头文件中用编译时条件来进行控制。例如:
#ifndef _MY_H_
#define _MY_H_
要包含的内容,比如一些函数声明,一些结构体定义等。
#endif
二、C语言中,定义自定义库函数时该如何写对应的头文件
没有强制规定,但一般遵循以下原则:
1 功能类似或相关的一组函数写在同一个头文件中;
2 头文件命名应简单,尽量短,但可以通过文件名得知内部函数功能;
3 头文件名由数字、字母、下划线组成,不要有空白字符或其它符号;
4 为防止头文件重复引用,或嵌套引用,头文件应使用条件编译包含;
5 头文件中,应遵循先类型定义,后函数声明的顺序;
6 当头文件函数声明中,用到其它头文件中定义的类型时,在头文件开始处进行引用。
————————————————
版权声明:本文为CSDN博主「xr_zy1110」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xr_zy1110/article/details/51153337