Форвардное объявление встроенных функций
У меня есть файл заголовка, который будет содержать большое количество (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()
}