100 ошибок из моего typedef

Это часть моего кода:

#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...

Как написано в заголовке вопроса, я получаю 100 ошибок из Visual C++ 2010, когда пытаюсь скомпилировать этот код. Ошибки вызваны какой-то ошибкой в ​​моем 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' находятся во включаемом файле, остальные находятся в файлах, в которые включается включаемый файл (с элементами). Кто-нибудь знает, где проблема? Пожалуйста помоги.

1 ответ

У вас наверняка есть синтаксическая ошибка в определении структуры CODEFILE это мешает компилятору анализировать имена полей. Затем, когда эти поля используются, снова происходит сбой в каскаде ошибок.

В этих случаях просто сконцентрируйтесь на самой первой ошибке.

Если вы используете VS, найдите первую ошибку в окне "Вывод", а не в окне "Ошибки". Последний известен для переупорядочения ошибок для вашего удобства.

Другие вопросы по тегам