Форвардное объявление встроенных функций

У меня есть файл заголовка, который будет содержать большое количество (30+) встроенных функций.

Вместо того, чтобы считывать прокрутку или искать определение (реализацию) встроенной функции, я хотел бы иметь секцию прямой декларации, которая объявляет объявление функции с комментариями, описывающими эту функцию. Этот раздел позволит читателю узнать, как использовать функцию или искать функцию, не прокручивая ее до реализации.

Кроме того, я хотел бы, чтобы читатели привыкли использовать функции, не видя их реализаций.

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

{Это относится к C99 и С++}

FYI, я использую компилятор IAR Workbench C для использования C99.

Ответы

Ответ 1

Не иначе, как не-встроенная функция:

void func();       // "forward" declaration

// ...

inline void func() // definition
{
    // impl
}

Обычно шаблон, используемый для "скрытия" определений от потребителя библиотеки, заключается в том, чтобы помещать объявления в один заголовок (a.h) и определения во втором заголовке (a_def.h), а затем иметь прежний #include последний (для краткости опущены предохранители включения):

// a.h
void func();
#include "a_def.h"

// a_def.h
inline void func()
{
    // impl
}

Пользователь библиотеки просто #include <a.h>.

Ответ 2

Вам не нужно "пересылать объявить" его (термин, который обычно применяется только к типам, поскольку мы обычно определяем их в том же месте, что мы сначала объявляем их).

Просто объявите его, как обычно:

#include <iostream>

void foo();            // Declaration

inline void foo() {    // Defining declaration
   std::cout << "!";
}

// ---------------------------------------------

int main() {
   foo();              // Output: foo()
}

Живая демонстрация