c - 使用extern关键字调用函数

标签 c extern storage-class-specifier

我想从other.c调用test.c中定义的函数。

我可以extern调用它吗?另外,我是否必须在function1extern中使用function2function3来使用function1

other.c

extern function1();
function1();

test.c
void function1()
{
    function2();
    function3();
}

void function2()
{

}

void function3()
{

}

最佳答案

函数声明是“默认”的extern

引用C11,第§6.2.2章(重点是我的)

如果函数的标识符的声明没有存储类说明符,则其链接
完全由确定,就好像它是由存储类说明符extern声明的一样。 [...]

因此,您不必对此明确。

您需要将翻译单元(也称为源文件)编译成目标文件,然后将它们链接在一起以构建可执行文件。那应该做。

关于c - 使用extern关键字调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45923026/

相关文章:

c - C语言标准是否规定了对全局寄存器变量的支持

c - 编译器如何以及为什么将 extern 函数替换为空函数?

检查这是否为空

c - local_fiq_enable() 的功能

java - 在关闭远程桌面连接时运行 s/w

c++ - 无法从另一个项目链接一个项目的头文件和 cpp 文件 LNK2019 : unresolved external symbol error

C++ 外部存储类生命周期

c - 头文件中没有 extern 的全局变量

c - 我们如何在 C 的作用域之外访问 auto 和 static 变量?

c - 互斥体初始化 -(UNIX)