关于 多文件编译 #ifndef 的几个疑问

huanhuan30 huanhuan30 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
对 多文件编译 一直有疑问...
看了 http://www.cppblog.com/twzheng/archive/2007/05/07/23584.html 这篇文章.我更是疑问..

“头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。” ————这一段是我从刚刚那个文章里复制下来的...

他说会产生 大量的声明冲突.... 我 写了一个 a.h ,内容如下



//———names.h———————

#define SLEN 32
struct name_st
{
char first[SLEN];
char last[SLEN];
};

typedef struct name_st names;

void get_name(names *);
void show_name(names *);

....随便写 a.c 和b.c 都包含有#include <names.h> 这一句
但是 编译成一个EXE后。。就是不出错。。
照这篇文章里面的说法。。我的 a.c和b.c 里都 有一个 names 这样一个数据结构....为什么编译可以成功呢?非常不懂
...全文
评论 8
收藏 已收藏
分享
返回顶部
huanhuan30
C语言 70,039 成员 243,237 内容