编译错误:ISO C++ forbids declaration of *** with no type

时间:2021-02-08 16:11:51

转自:http://blog.hiwgy.com/2011/07/16/compile_error/

今天遇到个问题,“ISO C++ forbids declaration of *** with no type”。
错误的原因一般是:两个头文件相互include,一般可以采用#ifndef或前置声明解决该问题;
具体用法很简单,就不讲了。

我反复检查,上面的方法并没有解决该编译error。最后,我发现了cpp文件中有“#ifndef __FILENAME_HEADER”,这就是问题的所在了。
由于我是vim新建的.h文件,然后把.h文件copy为.cpp文件,忘记了把vim自动生成的__FILENAME_HEADER去掉,因此发生了几个warning,最终导致了“ISO C++ forbids declaration of *** with no type”。

结论是:编译时,不要盯着error解决error,有的error是warning导致的;要把warning消灭掉。