我在项目的一个头文件中定义了一个枚举TokenType
。
后来我在某个标头中包含<windows.h>
时,编译器抱怨它已经定义了自己的TokenType
。
在C中避免此类命名冲突的约定是什么?我是否必须使用前缀MyProject_
来命名整个项目中使用的任何公共事物(函数,枚举,typedef结构等)?例如MyProject_TokenType
?看起来很丑。常见的处理方法是什么?
什么是图书馆的通用方法?什么是独立应用程序(例如我自己的)?
答案 0 :(得分:2)
由于ANSI C不支持名称空间,所以迄今为止,我遇到的最实用的选择是将项目/文件名放在全局变量/类型之前。尽管它使名称变长了,但除了避免碰撞的优点之外,我还发现它更具组织性和可读性。