необъявленный идентификатор - не уверен, почему

я только изучаю Си

Я написал следующее:

void main(void)
{
    unsigned int  curr_dat = 0; // The current dat file to use
    unsigned char ch = 0;       // Key entered at keyboard
    unsigned char lastkey = 0;  // Last key entered (movement command)
    FILE *fp;
}

Однако при попытке компиляции я получаю следующие ошибки:
error C2065: 'FILE' : undeclared identifier
error C2065: 'fp' : undeclared identifier
warning C4552: '*' : operator has no effect; expected operator with side-effect

Я не уверен, почему, поскольку я считаю, что FILE является допустимым идентификатором в C

Я использую командную строку разработчика для VS2012 для компиляции


person DNKROZ    schedule 19.08.2016    source источник
comment
И int main вместо void main   -  person David Ranieri    schedule 19.08.2016
comment
Спасибо @FredLarson, это сработало. Понятия не имел. Почему int @AlterMann?   -  person DNKROZ    schedule 19.08.2016
comment
Потому что так написано в стандарте ;)   -  person David Ranieri    schedule 19.08.2016
comment
Что должен возвращать main() в C и C++?   -  person David Ranieri    schedule 19.08.2016
comment
Интересно, почитаю. Спасибо   -  person DNKROZ    schedule 19.08.2016
comment
в размещенном коде отсутствует оператор: #include <stdio.h>   -  person user3629249    schedule 20.08.2016


Ответы (2)


FILE объявлен в stdio.h. Добавьте #include <stdio.h> в начало файла.

person Fred Larson    schedule 19.08.2016

FILE это тип от stdio.h. Чтобы использовать его, вы должны добавить:

#include <stdio.h>

в верхней части вашего файла. Результат может быть:

#include <stdio.h>

void main(void) {
    unsigned int  curr_dat = 0; // The current dat file to use
    unsigned char ch = 0;       // Key entered at keyboard
    unsigned char lastkey = 0;  // Last key entered (movement command)
    FILE *fp;
}
person xenteros    schedule 19.08.2016