Der*_*rek 1 c c++ coding-style
我正在努力将一些源代码移植到Linux系统,正如预期的那样,一些东西被打破了.有一件事就是给我一个错误,就是有人有.h和.cpp文件都使用fclose()
编译器抱怨fclose()在头文件中未声明.
这是头文件中的函数声明:
void closeFile() { if (fp) fclose(fp); }
Run Code Online (Sandbox Code Playgroud)
现在,我认为这是一种糟糕的风格,但是 - 他们之前是如何做到这一点的呢?他们的编译器版本是否允许这种行为?
我应该通过在标题中包含stdio来解决这个问题,还是将整个事情移动到cpp?
风格不错,你可以将源代码放在头文件中,有时你会被迫使用,特别是:
定义模板类/函数时.
定义内联函数时.
无论如何,你不应该在头文件中放置一个free(在类范围外定义)非内联函数,因为只要源文件包含这样的头文件就会编译(这会给你一个链接错误).
如果您收到一条错误,表明fclose尚未声明状态,则可能是因为cstdio (或stdio.h)未在该段代码之前声明.放在#include <cstdio>头文件的开头.
| 归档时间: |
|
| 查看次数: |
4931 次 |
| 最近记录: |