gpt4 book ai didi

c - "error: expected identifier or ‘(’ 数字常量之前”–?

转载 作者:行者123 更新时间:2023-12-01 15:34:57 25 4
gpt4 key购买 nike

标题中的错误发生在该头文件中每个类似函数的宏的“#define”行(从第 45 行开始)。我做错了什么吗?

#ifndef ASSEMBLER_H
#define ASSEMBLER_H


/* Ports */
#define Input 0
#define Output 15

/* Registers */
#define Z 0
#define A 1
#define B 2
#define C 3
#define D 4
#define E 5
#define F 6
#define G 7

/* OP Codes */
/*-----Control--------*/
#define HLT_OP 0
#define JMP_OP 1
#define CJMP_OP 2
#define OJMP_OP 3
/*-----Load/Store-----*/
#define LOAD_OP 4
#define STORE_OP 5
#define LOADI_OP 6
#define NOP_OP 7
/*-----Math-----------*/
#define ADD_OP 8
#define SUB_OP 9
/*-----Device I/O-----*/
#define IN_OP 10
#define OUT_OP 11
/*-----Comparison-----*/
#define EQU_OP 12
#define LT_OP 13
#define LTE_OP 14
#define NOT_OP 15

/* Macros */
/*-----Control--------*/
#define HLT()
( HLT_OP << 28 )
#define JMP(address)
( (JMP_OP << 28) | (address) )
#define CJMP(address)
( (CJMP_OP << 28) | (address) )
#define OJMP(address)
( (OJMP_OP << 28) | (address) )
/*-----Load/Store-----*/
#define LOAD(dest, value)
( (LOAD_OP << 28) | ((dest) << 24) | (value) )
#define STORE(dest, value)
( (STORE_OP << 28) | ((dest) << 24) | (value) )
#define LOADI(dest, value)
( (LOADI_OP << 28) | ((dest) << 24) | (value) )
#define NOP()
( NOP_OP << 28 )
/*-----Math-----------*/
#define ADD(dest, op1, op2)
( (ADD_OP << 28) | ((dest) << 24) | ((op1) << 20) | ((op2) << 16) )
#define SUB(dest, op1, op2)
( (SUB_OP << 28) | ((dest) << 24) | ((op1) << 20) | ((op2) << 16) )
/*-----Device I/O-----*/
#define IN(reg)
( (IN_OP << 28) | ((reg) << 24) | (Input) )
#define OUT(reg)
( (OUT_OP << 28) | ((reg) << 24) | (Output) )
/*-----Comparison-----*/
#define EQU(reg1, reg2)
( (EQU_OP << 28) | ((reg1) << 24) | ((reg2) << 20) )
# define LT(reg1, reg2)
( (LT_OP << 28) | ((reg1) << 24) | ((reg2) << 20) )
#define LTE(reg1, reg2)
( (LTE_OP << 28) | ((reg1) << 24) | ((reg2) << 20) )
#define NOT()
( NOT_OP << 28 )



#endif

最佳答案

预处理指令(如#define)以换行符结束,因此它只能是一行长。如果要多行宏定义,需要换行转义:

//                  v Make this the last character on the line
#define NOT() \
( NOT_OP << 28 )

关于c - "error: expected identifier or ‘(’ 数字常量之前”–?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com