我想这样做以下:不能使用头枚举
parser.h
#ifndef WS_PARSER_H
#define WS_PARSER_H
#include <stdin.h>
#include <stdbool.h>
typedef enum {
FIN = 0x80;
RSV1 = 0x40
/* ... */
} ws_flags;
#endif
parser.c
#ifndef WS_PARSER
#define WS_PARSER
#include "parser.h"
ws_read_fin_flag(unsigned char * chunk) {
return (bool) chunk[0] & WS_FLAGS.FIN;
}
#endif
不幸的是我得到的FIN是一个不宣标识符。
我做错了什么?
UPDATE:
什么是全球枚举的约定?
typedef enum {} WS_FLAGS;
很难看到错字。你应该使用体面的IDE,所以这些错别字会在你输入时突出显示。尝试日食。 –
这意味着你可以引用没有枚举限定符的'WS_FLAGS',例如'WS_FLAGS flag = FIN;'类型的定义变量,请不要更正你的问题** –
@GrijeshChauhan符合约定吗?或者我应该使用一个宏映射 – bodokaiser