读书人

为什么每个头文件headfile.h的开头都有

发布时间: 2012-03-20 14:01:10 作者: rapoo

为什么每个头文件headfile.h的开头都有像类似的语句?
#ifndef _HEADFILE_H
#define _HEADFILE_H
.....
.....

这是什么意思?做什么用?

[解决办法]
防止重复编译

也可以用#pragma once代替
[解决办法]
预编译命令
#ifndef _HEADFILE_H
#define _HEADFILE_H
如果没有定义预编译变量_HEADFILE_H,那么就定义它
在其他地方include这个头文件就会根据这个预编译变量判断是否已经包含了他,
如果定义就将其过滤掉
以免导致其内部变量和函数的重复
[解决办法]
有了这个条件宏,经管你可以多次#include该头文件,但编译的时候会保证该头文件第一次#include的会被编译,后面多次的#include会被忽略,从而保证头文件只被编译一次,这样可以避免诸如类、结构、函数等重复定义的错误。
[解决办法]
这个是非常好也是非常必要的东东
尤其源文件和头文件都比较多的时候

原因就是上边说的,防止重复编译

读书人网 >C语言

热点推荐