社区
C语言
帖子详情
关于#ifndef的一点疑问
wqtl_357
2005-12-17 10:48:02
#ifndef SIMPLE_H
#define SIMPLE_H
struct Simple
{
int i, j, k;
initialize(){i=j=k=0;}
};
#endif //SIMPLE_H
问:SIMPLE_H怎么和Simple_h联系,也就是说SIMPLE_H怎么知道Simple_h已被定义?
...全文
119
4
打赏
收藏
关于#ifndef的一点疑问
#ifndef SIMPLE_H #define SIMPLE_H struct Simple { int i, j, k; initialize(){i=j=k=0;} }; #endif //SIMPLE_H 问:SIMPLE_H怎么和Simple_h联系,也就是说SIMPLE_H怎么知道Simple_h已被定义?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
0黄瓜0
2005-12-17
打赏
举报
回复
补充:SIMPLE_H 是让看代码的人方便,一看就知道,哦,这里保护的是simple.h文件。其实,SIMPLE_H 可以用其他任何合法C++标示串,效果一样。比如
#ifndef ASDFGHJK
#define ASDFGHJK
struct Simple
{
int i, j, k;
initialize(){i=j=k=0;}
};
#endif //ASDFGHJK
Tycool
2005-12-17
打赏
举报
回复
楼上的楼上说的很清楚了。。。
shu_yoyo
2005-12-17
打赏
举报
回复
防止文件被重复定义。
dx30611
2005-12-17
打赏
举报
回复
LZ理解错了
这是防止头文件被重复编译
比如a.h中有Simple.h,b.h中也Simple.h,
然后c.h中有a.h,b.h,这样就会出现编译错误
而定义SIMPLE_H就是为了防止这个情况,SIMPLE_H没有实际意义
当发现SIMPLE_H已经定义是就不会编译这个文件
《C深度解析》第二章 C预编译——宏定义、条件编译、头文件包含、特殊预编译关键字
(3)条件编译:#if、#else、#elif #endif、#if
def
和#
ifn
def
、#if与
def
ined、条件编译与配置文件 (4)一些特殊的预编译关键字与实际应用:
def
ined、#error、#line、#与##、#pragma (5)文件包含:是否只能包含.h...
#
ifn
def
头文件卫士 只防止一个.cpp里的重定义(因为#
def
ine只作用于一个.cpp),而不是多个.cpp
#
ifn
def
头文件卫士是为了保证类的头文件在一个.cpp文件中被多次引用后会不会出现重复定义的问题,注意,只是防止在一个.cpp文件中被多次引用.#
ifn
def
ELEMTYPE_H#
def
ine ELEMTYPE_H的意思是,如果前面没有定义...
Linux内核入门: 编译器定义
所有的内核代码,基本都包含了include/linux/compile.h这个...#
ifn
def
__LINUX_COMPILER_H #
def
ine __LINUX_COMPILER_H #
ifn
def
__ASSEMBLY__ 首先印入眼帘的是对__ASSEMBLY__这个宏的判断,这个变量实际是在编...
#if
def
、 #
def
ine、 #else、 #endif
防止头文件重复包含 1.1 防止头文件重复包含
疑问
: 什么是重复引用? 是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,会产生什么后果? 是不是所有的头文件中都要加入#
ifn
def
/#...
Linux内核入门(七)—— 必要的编译知识
所有的内核代码,基本都包含了include/linux/compile.h这个...#
ifn
def
__LINUX_COMPILER_H #
def
ine __LINUX_COMPILER_H #
ifn
def
__ASSEMBLY__ 首先印入眼帘的是对__ASSEMBLY__这个宏的判断,这个变量实际是在编...
C语言
69,374
社区成员
243,076
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章