码迷,mamicode.com
首页 > 其他好文 > 详细

头文件重复包含

时间:2019-03-19 12:13:58      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:头文件   原因   很多   文件中   一个   http   为什么   有一个   str   

设想一种情形:

在c3.h中定义一个结构体类型,之前说过结构体类型、宏、类型重命名都是放到头文件里面的。当然放在源文件中也行,不过一般这些声明都是放在头文件中,这是一个规范!!

因为它本身就是一个类型,可能在很多文件中都会使用,所以这些东放在头文件里面,这样的话,在其他文件使用这个定义的时候,就直接包含头文件,就过去了。

继续设想的情形

在c3.h中定义一个结构体类型 

技术图片

使用这个结构体

技术图片

接下来想在d3.c 中也使用c3.h中的这个结构体类型。

技术图片

技术图片

会不会想到一个问题?

c3.h有一个struct C3{int a};

d3.h中也有一个 

但是这两个结构体定义直接没有任何冲突,为什么???

因为它俩在不同的文件中。之前讲结构体定义,如果在同一个文件中定义两个一模一样的会报错,重定义。但是在不同文件中可以随便定义一模一样的,

所以不同文件中的  struct C3{int a}; 这个声明的作用域就是所在的文件中。

技术图片

但是当main.c 中

技术图片

造成这个错误的原因就是 头文件的重复包含!!

 

头文件重复包含

标签:头文件   原因   很多   文件中   一个   http   为什么   有一个   str   

原文地址:https://www.cnblogs.com/dabing0983/p/10557499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!