Я работаю над переносом некоторого исходного кода в систему linux, и, как и ожидалось, некоторые вещи не работают. Одна вещь, которая сейчас бросает мне ошибку, заключается в том, что у кого-то есть файл .h и .cpp, в котором используются как fclose()Следует ли включать исходный код в файл заголовка?
Компилятор жалуется, что fclose() не объявлен в заголовочном файле.
здесь было объявление функции в файле заголовка:
void closeFile() { if (fp) fclose(fp); }
Теперь, я думаю, что это плохой стиль, но и - как же они получают эту работу раньше? Разве их версия компилятора допускает такое поведение?
Должен ли я исправить это, включив stdio в заголовок или переместив все это в cpp?
Нет ничего синтаксически неправильного с помещением кода в заголовок, поэтому компилятор полностью прав, чтобы «разрешить» это. Либо одно из этих решений прекрасно. – Falmarri
Использование fclose в коде C++ ВСЕГДА плохой стиль. – BatchyX
@BatchyX: ВСЕ абсолютные осуждения ВСЕГДА ошибаются. –