我不明白,如果没有 .h 文件,如何建立“连接”。
这是代码:
文件main.c:
void Run( void ) ;
int main(void)
{
Run() ;
}
Run Code Online (Sandbox Code Playgroud)
文件:运行.cpp:
static MyClass gMyClassInstance;
extern "C" {
void Run( void )
{
gMyClassInstance->Run();
}
}
Run Code Online (Sandbox Code Playgroud)
Run在整个项目中搜索,再也没有出现,也没有在任何 .h 文件中。它是如何做到的?
小智 6
.h文件用于避免在.c/.cpp文件之间重复声明.c/.cpp(当函数未在本地定义时,编译器需要声明)。
在您的示例中,有一个单一的声明void Run( void );,直接在main.c而不是在单独的声明中.h,这对于编译器来说就足够了。Run与中定义的函数的连接run.cpp将由链接器建立(作为名为 的入口点_Run)。
C/C++ 编程中绝不强制要求头文件。