私はこのtypedefを含んでいるいくつかのレガシーコードがあります。Cの#define文で、列挙型、構造体
typedef enum simple_op_enum {
#define SOP(OPCODE, NAME, FORM, SUIFOP) OPCODE ,
#include "simple_ops.def"
LAST_OP
} simple_op;
の#includeファイルは、フォームのいくつかの行が含まれています。
/* no operand instructions */
SOP(NOP_OP, "nop ", BASE_FORM, io_nop)
トークン「をsimple_op 「構造体の後半に発生します。
typedef struct simple_instr_struct {
simple_op opcode; /* the opcode */
私は理解していないいくつかのことがあります。
#defineステートメントの最後にコンマを置くことによって達成されることはありますか?私はそれが違法だと思った。
は私がsimple_instr_structにオペコードの値にアクセスするにはどうすればよい特にLAST_OP
、列挙型で何を達成していますか?
http://stackoverflow.com/questions/264269/what-is-終わりに向かってa-good-reference-documenting-of-x-macro-of-cまたは-possib –