C源文件和头文件是否有标准化结构?
我正在考虑这样的事情(C源文件的例子):
// static variables
// public variables
// static methods
// public methods
答案 0 :(得分:1)
鉴于这是一个C问题,我推测:
// static variables
// public variables
// static methods
// public methods
......意思是:
// static variables
// public variables (external linkage)
// static functions
// public functions
关于这个命令,我认为除了对此的主观反应之外,你不会引起任何反应。除非您询问特定组织的编码标准,否则它肯定不会标准化,在这种情况下,他们可能会制定相关政策。有些人可能更倾向于公共场所之前的私有,有些人可能更喜欢私有。有些人可能会先把一个放在另一个之上,以强调一个人相对于另一个人的重要性,而另一些人则可能会强调其重要性超过其前身。关于这些风格偏好并没有一致意见,它们对代码或其运行时行为没有任何逻辑影响。
重要的是保持一致,我建议避免任何异国情调,因为它会吓跑其他必须查看代码的开发人员。如果你想与其他工程师合作,那么异国风格通常很糟糕。越是异国情调的风格,他们越个性化,他们就越需要他人适应个人喜好。
尝试使用外部链接(全局变量)减少公共变量的数量。虽然听起来很小,但是编写一个公共函数来获取变量是一个很大的进步,即使它是一个简单的getter-type函数,它返回一个指向变量的指针,因为它至少可以让你修改它代码,如果有必要进行更改,并且允许您轻松地将断点放在访问它的任何位置,为函数添加检测等。
答案 1 :(得分:1)
我通常将以下内容用于c:
// include guard
#ifndef <filename>_H
#define <filename>_H
// define this as extern for c++
#ifdef __cplusplus
extern "C" {
#endif
#include <libraries>
#define <preproc variables>
#define <preproc macros>
enum <enums> {
};
typedef <variables>;
typedef <structs>;
function prototypes();
// end c++ guard
#ifdef __cplusplus
}
#endif
// end include guard
#endif
答案 2 :(得分:0)
您正在使用的结构很好。
最佳做法是命名公共变量和公共方法,并在产品名称/公司名称前加上相同的名称,以避免与其他库命名冲突。
答案 3 :(得分:0)
这是一个完全主观的问题。但是,这就是我的工作。
标题:
// extern defines, constants and enums
// public types
// extern methods
没有外部变量: - )
编制单位:
// includes
// definitions for extern constants
// static function prototypes
// everything else
我倾向于将相关的东西分组,所以我并没有严格地将所有静态变量或定义放在oner的地方,而是靠近它们的使用位置。