我想這樣做以下:不能使用頭枚舉
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