Я пытаюсь скомпилировать старый код C под MS VS 2010. Ошибка возникает при объявлении структуры и вызове.
Декларация (редактировать):
typedef struct tStr
{
int nInt;
int ***anPoint;
};
Использование:
struct tStr tStuff;
tStuff.nInt = 0;
Объявление функции (правка: возможно, теперь работает):
int doStuff(struct tStr *sStuff, int nStuff);
Компилятор жалуется на то, что неопознанные идентификаторы отсутствуют (или; или {и т. Д. Все они классифицируются как синтаксические ошибки. То, что я проверил, синтаксис должен быть в порядке. Так что я нахожусь на своем конце ...
Я переделал объявление структуры. И все же та же ошибка:
error C2143: syntax error : missing ';' before 'type'
Хорошо, вернемся к старой декларации. Но если я пытаюсь получить доступ к переменным структуры, как при использовании, я получаю сообщение об ошибке:
error C2065: 'tStuff' : undeclared identifier
Итак, мой живой код:
typedef struct tMatrix
{
int nRows;
int nCols;
int nVec;
int ***anMatrix;
};
int allocateMatrix(struct tMatrix *sMatrix, int nType);
struct tMatrix sMatrix1;
sMatrix1.nRows = 0;
Ошибки:
error C2143: syntax error : missing ';' before 'type'
error C2065: 'sMatrix1' : undeclared identifier
Есть идеи?
РЕДАКТИРОВАТЬ: Спасибо за все ответы, я думаю, я просто перепишу его. Я также получаю намного больше других ошибок о преобразовании типов и так ... Чтобы избежать головной боли, я просто начну заново. Еще раз спасибо.