C命名约定:隐藏变量/宏

时间:2014-09-03 11:11:43

标签: c naming-conventions

IIRC,不得使用内置名称(例如openread等),以下划线和大写字母开头的名称(例如_Thread),名称开头使用双下划线或包含它(例如__GCC__)。对于POSIX兼容性更是如此(请参阅GCC命名约定)。

我正在创建一个新库,其中每个函数,类型或宏都以前缀开头(如果是宏,则以大写字母书写)。但是,如果我创建一个全局但隐藏的变量,我怀疑我必须使用哪些名称。或者如果它是一个宏。无论如何,它应该是隐藏的。我将使用任何命名约定吗?我以为我可以使用__mycustomprefix_global,但我不确定。提前谢谢!

更新 我知道static并在任何可能的地方使用它。但是,我所说的变量/函数/宏必定是全局的。

1 个答案:

答案 0 :(得分:1)

原则上,以前导下划线开头的标识符保留用于新语言关键字,C运行时和标准库以及编译器内在函数,因此不应使用它们。

但是,如果使用名称空间前缀,则冲突的可能性很低,因此在实践中无关紧要。就个人而言,我会使用尾随的下划线。