目前我做以下事情:
解析器.h
typedef enum {
FIN = 0x80,
RSV1 = 0x40
} WS_FLAGS;
解析器.c
int main() {
return WS_FLAGS.FIN;
}
定义全局常量映射的约定是什么?
例如,我更喜欢这样的东西:
int main() {
return WS_FIN;
}
博多
目前我做以下事情:
解析器.h
typedef enum {
FIN = 0x80,
RSV1 = 0x40
} WS_FLAGS;
解析器.c
int main() {
return WS_FLAGS.FIN;
}
定义全局常量映射的约定是什么?
例如,我更喜欢这样的东西:
int main() {
return WS_FIN;
}
博多
在 C 中,FIN
不定义为 的局部定义WS_FLAGS
。它与 C# 等其他语言不同。
我不知道这是否是一种约定,但由于您不能在 C 中声明命名空间,因此它通常会在我的枚举声明之前加上一些让人想起枚举名称的名称:
typedef enum {
WS_FLAG_FIN = 0x80,
WS_FLAG_RSV1 = 0x40
} WS_FLAGS;
或者
typedef enum {
WS_FIN = 0x80,
WS_RSV1 = 0x40
} WS_FLAGS;
...因此WS_FIN
不太可能与任何其他something_FIN
声明发生冲突。
然后,在您的主要内容中,您只需通过以下方式调用 I:
int main()
{
return WS_FLAG_FIN;
}
查看枚举,如#define
.
如果你写:
typedef enum {
FIN = 0x80,
RSV1 = 0x40
} WS_FLAGS;
然后你必须写:
int main()
{
return FIN;
}
您可以使用枚举作为参数,如下所示:
int foo(WS_FLAGS flag)
{
return flag;
}
int main()
{
return foo(FIN); // return FIN
}