mrjbom
@mrjbom

Как устранить неявное объявление функции в коде?

Здравствуйте.

Имеется файл kmain.c, в нём у нас входная точка и главная функция, которая использует функцию initVGAMemory();, прототип функции описан в заголовочном файле vgamemory.h(реализация в vgamemory.c).

К kmain.c подключён лишь один заголовочный файл kernel.h, в нём vgamemory.h никаким образом не подключается, получается, в kmain.c мы никаким образом не можем использовать эту функцию, т.к. она напрямую и косвенно не подключена.

При компиляции вылезает предупреждение:
./source/kmain.c:7:5: warning: implicit declaration of function ‘initVGAMemory’ [-Wimplicit-function-declaration]


Каким образом я могу отловить и устранить эту проблему? Ибо оно хоть и компилируется, но я хочу что-бы функции работали лишь при явном включении заголовочного файла.
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
tsarevfs
@tsarevfs
C++ developer
Про ошибку: https://ru.stackoverflow.com/a/622138/221454
>Главная функция использует функцию initVGAMemory()
>Прототип функции описан в заголовочном файле vgamemory.h
>К kmain.c подключён лишь один заголовочный файл kernel.h, в нём vgamemory.h не подключается

Вы используете необъявленную функцию initVGAMemory. Я бы рассматривал этот варнинг как полноценную ошибку. Мне не понятно какой эффект вы хотите получить.
Либо уберите использование функции, либо подключите хедер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы