首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

去掉能否被build以外,h文件和cpp文件有本质区别吗

2014-01-12 
除了能否被build以外,h文件和cpp文件有本质区别吗?变量和函数声明都可以放到cpp文件里面,cpp文件也可以被#

除了能否被build以外,h文件和cpp文件有本质区别吗?
变量和函数声明都可以放到cpp文件里面,cpp文件也可以被#include到另外一个文件中去,并且cpp文件也可以通过#ifndef机制来避免多次被#include,这么说我们岂不是可以把所有的h文件都写成cpp文件?
[解决办法]
你要知道 文件后缀存在的意义是什么
[解决办法]
如果你自己写make,大可不必在意,你用现代IDE,所有工程项目中的cpp自动被认定为一个编译单元(当然你在IDE里面设置吧cpp认作头文件,h认作源文件就是另一回事了),说句题外话,使用IDE,就算是cpp和c也有很大的区别,c文件编译器会用c的方法编译,cpp编译器会用c++的方法编译,这些都是根据后缀编译器自动决定的
[解决办法]
编译的时候 一般都是编译cpp,cxx 这一类源文件。
.h 编译的时候会忽略,直到需要展开.h的时候。

可以,找个makefile 看看,编译的时候,如何对待.h 和.cpp等的。

乱用扩展名,是给自己找麻烦;
这样只看文件名,你就不知道,这个文件的实际类型;
还需要查看代码,才知道文件的用途。

不是编译器,一定不能编译.h;
也不是 编译器一定只能把.cpp ,当作源文件看待。

这其实算是,C,C++文件命名的,一种规范。

而且,大家都这么用,非常方便。



[解决办法]
本身没有。之所以它是头文件,是因为你把它当成头文件来写、用。
当然,后缀名有时会影响编译控制工具的识别。但这是第三方工具外加的差别。
[解决办法]
.h 可以被第三方使用呀
[解决办法]
后缀名用来给人和一些软件看,如果人和软件不看,那么后缀名就没用
VS自动编译工程的时候,只认cpp,但如果你手动指示编译器一个文件一个文件编译,那么后缀名就啥用没有
[解决办法]
你这个想法被微软支持了,C#就是1个文件。
[解决办法]

引用:
你这个想法被微软支持了,C#就是1个文件。

++
.net的 C++/CLI 似乎也是这么干的。
并且,很多时候,只需要.h。

热点排行