@RoadToGamedev

Как мне добавить этот код в header и использовать в другом коде?

Здравствуйте. Есть такой код:
// TODO: Add this to header (if apps really need it)
struct android_app *GetAndroidApp(void)
{
    return CORE.Android.app;
}

В комментарии говорится что я могу добавить его в Header, но сам не понимаю как.
Как я понял это структура которая принимает функцию?
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347
Бородатый программер
Давайте по порядку.
В представленном примере у нас реализация функции, которая не принимает параметров и возвращает указатель на структуру android_app

struct android_app * - это возвращаемый функцией тип;
GetAndroidApp - имя функции;
Конструкция (void) после имени означает, что функция без аргументов, современные компиляторы позволяют писать просто пустые скобки ();
В фигурных скобках пишут тело функции, то есть ее реализацию.

Компиляторы C читают код сверху вниз, использовать можно только то, что объявлено выше. Кроме того некоторые сущности вообще могут компилироваться отдельно и уже после линковаться в 1 исполняемый файл.
Для этого язык C поддерживает декларации сущностей без их реализации, при условии, что сущность будет реализована ниже или где-то еще, что прилинкуется на сборке.
Для функций декларацией (так же говорят заголовком) является описание ее сигнатуры, то есть для GetAndroidApp таким заголовком будет:
// описание структуры android_app должно быть выше заголовка его использующего,
// иначе он будет невалидным. А вот описание полей (реализация) может быть и ниже
struct android_app;

struct android_app* GetAndroidApp();


комментарии говорится что я могу добавить его в Header
Это значит, что данные сигнатуры можно вынести в заголовочный файл (тот что с расширением .h), это позволит вставить его во множество исходников через директиву препроцессора #include
Ответ написан
Ваш ответ на вопрос

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

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