我遇到一个问题,我的一个结构类型定义mode_t
与stdlib
mode_t
已在sys/types.h
在这种情况下最好的做法是什么?将我的结构重命名为其他东西还是有其他方法来解决冲突?
答案 0 :(得分:4)
从不拥有以_t
结尾的结构名称或变量名称。注意编译器或标准库保留的所有名称。
虽然C标准在技术上是合法的,但许多平台(例如POSIX)明确禁止它。
您最好的选择是重命名您的结构。
答案 1 :(得分:1)
如果名称在C程序中发生冲突,则需要重命名结构。在C ++中,您可以使用名称空间。
或者如果您想使用此名称,请不要包含sys/types.h
。
答案 2 :(得分:1)
如果您的程序名称与库变量名称冲突,请更改程序中的名称。