条件编译怎么避免重复包含头文件
发布时间: 2023-07-31 05:56:09
1. VC如何解决重复包含头文件的问题
语法上对头文件里的内容没有任何限制
c++语法有个要求就是任何名字(类型、变量或者函数什么的)都要“先声明后使用”,注意这个要求的范围是在同一个文件里,就是说你这个.cpp里用到的东西必须在你这个.cpp里先有声明。 如果你要用string类的变量, 你就必须先写清楚这个类型的声明,编译器才知道怎么去编译这一段。 所以你要是不怕累的话你可以就挨个用到的地方重复写一下,但是因为这个可能很麻烦, 也可能会几个地方写的不一致, 解决办法就是采用一个头文件,每个地方都include这个头文件, 就相当于写了这个类型的声明。 include命令的作用就是把那个头文件的内容复制到这里来, 至于头文件里面到底写了什么其实是没有语法要求的,但是如上所述, 头文件既然主要是解决这个声明的问题, 所以当然你看到的头文件里主要内容还都是声明。 现在模板横行的时候由于一些技术问题造成头文件里也写了很多实现, 这个解释起来有点麻烦,你可以不搭理它
所以总结一下, C语言要求先声明后使用,所以用头文件来形成一个统一声明, 而之所以要防止重复include头文件,是因为一个cpp里一个名字是不可以被定义多次的, 所以对那些声明=定义的东西如果重复include了,编译的时候就容易出现重复定义的错误,当然对有些声明跟定义截然分开的情况来说,重复include也没问题
热点内容