除了能否被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个文件。
[解决办法]