内联函数的正向声明

Forward declaration of inline functions

本文关键字:声明 函数      更新时间:2023-10-16

我有一个头文件,它将包含大量(30+)内联函数。

与其让读者滚动或搜索内联函数的定义(实现),我希望有一个转发声明部分,用描述函数的注释来声明函数声明。本节将允许读者了解如何使用函数或查找函数,而无需向下滚动到实现。

此外,我希望读者养成使用函数的习惯,而不必查看它们的实现。

独立函数的正向声明的语法是什么?

{这适用于C99和C++}

仅供参考,我正在使用IAR Workbench C编译器集来使用C99。

与非内联函数没有什么不同:

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>

您不需要"正向声明"它(这个术语通常只适用于类型,因为我们通常在第一次声明它们的地方定义它们)。

只需声明,就像正常情况一样:

#include <iostream>
void foo();            // Declaration
inline void foo() {    // Defining declaration
   std::cout << "!";
}
// ---------------------------------------------
int main() {
   foo();              // Output: foo()
}

现场演示

要同时使用C++和C99,也要内联声明,如下所示:

// declaration
inline void foo(void);
// implementation 
inline void foo(void) {
    print("foo");
}