目前我做了以下事情:
parser.h
typedef enum {
FIN = 0x80,
RSV1 = 0x40
} WS_FLAGS;
parser.c
int main() {
return WS_FLAGS.FIN;
}
定义全局常量映射的惯例是什么?
我比较喜欢这样的事情:
int main() {
return WS_FIN;
}
博多
答案 0 :(得分:1)
在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
声明冲突。
然后,在你的主要部分,你只需通过以下方式打电话给我:
int main()
{
return WS_FLAG_FIN;
}
答案 1 :(得分:0)
请参阅#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
}