c++ - 头文件中的一个函数使用的函数

标签 c++ header

上下文

我正在编写一个函数,该函数使用仅在该主函数中需要的其他函数。该主函数的目的是制作某种可以调用所需函数的工具包。

示例

int a(int x) // make x = 10 in a recursive way and its purpose is limited 
             // to be used with function b
{
    if (x == 10) return x;
    else if(x<10) return a(x+1);
    else return a(x-1);
}

int b(int x, int allow_b) // This is only an exemple, function b simply call function a if required.
{
    if (allow_b == 1) return a(x);
    else return x;
}

问题

由于函数“a”仅供“b”使用,是否应该在头文件中做一些特别的事情,或者只应在“a”被“b”使用的函数上进行注释?

这种方法有什么问题吗?

编辑

我的意思是应该在头文件中声明什么,我不是在谈论在头文件中编写函数“a”和“b”。

最佳答案

如果函数a仅由b使用,那么我认为不需要在任何头文件中声明它。

将两个函数放在同一个翻译单元中,并使用static链接声明和定义函数a,作为附加约束,这将阻止其他函数访问它翻译单元。

由于各种逻辑原因,这两个函数可能必须位于不同的翻译单元中,这需要在头文件中声明 a。在这种情况下,唯一能做的就是对此进行评论和记录。您还可以考虑为 a 单独设置一个单独的命名空间,以强调这一点。

关于c++ - 头文件中的一个函数使用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39111406/

相关文章:

c++ - 使用 C 或 C++ 复制非文本文件?

c++ - C++ 编译器会自动将我的函数设置为静态函数吗?

c++ - 从浏览器套接字接收函数,但不在缓冲区中存储任何内容

c++ - 对使用 Unix 的 C++ 中的单独目录的 #include 感到困惑

php - PHP 中的 "Transfer-Encoding: chunked" header

c++ - 用于 boost 共享内存分配的最大可用共享内存

c++ - 我可以使用没有指针的 fread 读取动态长度变量吗?

c++ - 从 C++ 中找到 "~/Library/Application Support"?

c++ - 将带有 C header 的文件夹转换为带有 C++ header 的文件夹的最简单方法是什么?

c++ - 您是否需要显式包含其他 header 已包含的 header ?