这是我的代码的一部分:
#ifndef INTPROC_OPERATIONS_H
#define INTPROC_OPERATIONS_H
#define MAX_OPERATIONS 256
#define USED_OPERATIONS 8
#define MAX_OPCODE 256
#define OPCODE_TYPE unsigned char
#define OPERANDS_TYPE unsigned char
#include <malloc.h>
#include "executions.h"
typedef struct
{
OPCODE_TYPE opcode;
const char * name;
OPERANDS_TYPE operands_length;
int (* execute)(char * operands_start, char operands_length);
} OPERATION;
OPERATION * operations[MAX_OPERATIONS];
extern void init_operations();
#define operations_init() init_operations()
extern OPERATION parse_operation(OPCODE_TYPE opcode); //syntax error type
#endif
code.c
#include "code.h"
CODEFILE * create_file()
{
CODEFILE * ret = (CODEFILE*)malloc(sizeof(CODEFILE));
ret->actual_instruction = 0; //'actual_instruction' : is not a member of 'CODEFILE'
ret->length = 0; //'length' : is not a member of 'CODEFILE'
ret->name = ""; //'name' : is not a member of 'CODEFILE'
ret->start = 0; /'start' : is not a member of 'CODEFILE'
return ret;
}
注意:code.h包含文件operation.h,我喜欢使用typedef时级联包含的问题...
正如它在问题标题中所写,当我尝试编译此代码时,我从Visual C ++ 2010中得到100个错误。错误是由我的typedef中的一些错误引起的。
Error 95 error C2039: 'actual_instruction' : is not a member of 'CODEFILE'
Error 96 error C2039: 'length' : is not a member of 'CODEFILE'
Error 97 error C2039: 'name' : is not a member of 'CODEFILE'
Error 98 error C2039: 'start' : is not a member of 'CODEFILE'
...
Error 6 error C2059: syntax error : 'type'
Error 64 error C2059: syntax error : 'type'
Error 76 error C2059: syntax error : 'type'
包含此结构的头文件包含在C文件中(我也在其他头文件中使用它)。像syntax error : 'type'
这样的错误在include文件中,其他错误在包含文件(包含成员)的文件中。任何人都知道问题出在哪里?请帮忙。
答案 0 :(得分:1)
结构CODEFILE
的定义中肯定存在语法错误,导致编译器无法解析字段的名称。然后,当使用这些字段时,它会在一系列错误中再次失败。
在这些情况下,只关注第一个错误。
如果您使用VS,请在“输出”窗口中找到第一个错误,而不是“错误”窗口。后者以重新排序方便的错误而闻名。