我有一个由 *.h 文件和 *.c 文件组成的软件模块。变量和函数声明位于 *.h 文件中,而函数定义位于 *.c 文件中。模块内的两个函数是辅助函数,不打算在模块外使用。
向模块用户明确这一意图的最佳方法是什么?
我尝试声明函数static
,但在 *.h 文件中这样做会导致 GCC 编译器警告这些函数“声明为静态但从未定义”。即使 *.c 文件使用#include
指令包含 *.h 文件,如何将 *.h 和 *.c 文件视为不同的翻译单元?
对于这个问题,是否有不涉及将要static
在 *.c 文件中进行的函数声明及其定义的解决方案?虽然这个解决方案确实有效,但它打破了我认为将声明保存在头文件中并将定义保存在实现文件中的良好做法。