内联函数的正向声明
Forward declaration of inline functions
我有一个头文件,它将包含大量(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");
}
相关文章:
- C++:为什么允许在另一个函数中声明函数,而不允许在函数定义中声明?
- 在c++中在类外声明函数有什么好处
- 使用 #define 声明函数
- 在静态库中声明函数,在使用该相同库的应用程序中定义它
- 如何强制编译器在 C/C++ 本身中声明函数?
- 如果您只需要在 .h 文件中声明函数.cpp是否需要在 .h 文件中声明函数?
- C++:<sys/sysctl.h> 无法声明函数CTL_HW和HW_NCPU
- 尝试声明函数的局部变量,但得到范围错误
- 如何在C++模板中声明函数
- 如何在另一个文件的类中声明函数
- 使用非类型模板参数正向声明函数模板
- 在此范围错误中未声明函数错误
- 当我们不能声明函数内联(GCC 编译器)时?
- 未在此作用域中声明函数,即使存在头文件也是如此
- 无法声明函数中的模板类型别名
- 单个CPP文件中多次声明函数声明可以吗?
- 编译一个支持VBA中声明函数的dll
- 使用从外部参数包中获取的参数类型声明函数
- 使用类成员正确地声明函数
- 在函数内重新声明函数