在C ++中,可以使用命名空间来保持独立组在同一代码库中工作,从而无意中创建具有相同名称的函数,从而产生冲突。我的问题是,在命名空间的概念出来之前,如何在C中模拟命名空间。
答案 0 :(得分:18)
通过不同的方式命名,例如:
void namespace_group_function();
gtk+是这种传统风格的一个典型例子:
GtkWidget* gtk_window_new(GtkWindowType type);
答案 1 :(得分:6)
为所有公共符号的名称使用通用前缀,因此foo::bar
变为foo_bar
。在所有符号名称上抛出前缀实际上是命名空间的作用。 (并且还将没有前缀的符号解析为具有前缀的声明,这非常有用)
答案 2 :(得分:2)
对于未导出的符号,您将每个模块放在一个单独的文件中。
对于导出的符号,通常应用前缀。两三个字母很常见。