如何在C中模拟命名空间?

时间:2010-03-20 00:31:22

标签: c++ c

在C ++中,可以使用命名空间来保持独立组在同一代码库中工作,从而无意中创建具有相同名称的函数,从而产生冲突。我的问题是,在命名空间的概念出来之前,如何在C中模拟命名空间。

3 个答案:

答案 0 :(得分:18)

通过不同的方式命名,例如:

void namespace_group_function();

gtk+是这种传统风格的一个典型例子:

GtkWidget* gtk_window_new(GtkWindowType type);

答案 1 :(得分:6)

为所有公共符号的名称使用通用前缀,因此foo::bar变为foo_bar。在所有符号名称上抛出前缀实际上是命名空间的作用。 (并且还将没有前缀的符号解析为具有前缀的声明,这非常有用)

答案 2 :(得分:2)

对于未导出的符号,您将每个模块放在一个单独的文件中。

对于导出的符号,通常应用前缀。两三个字母很常见。