c - 外部函数原型(prototype)?

标签 c extern function-prototypes

我的数学.h

// case 1 
unsigned int add_two_numbers(unsigned char a, unsigned char b);

//case 2 
extern unsigned int add_two_numbers(unsigned char a, unsigned char b); 

情况一和情况二有什么区别?我从未将 extern 用于函数原型(prototype),但查看某人的代码(比我更有经验的人)我发现 extern 总是在声明函数原型(prototype)时使用。任何人都可以指出请指出区别吗? (或指向我可以找到特定信息的链接)。谷歌说这与外部链接有关。谁能给我举一个例子,其中一个行得通而另一个行不通?

我正在使用嵌入式 C (KEIL),如果它有什么不同的话。

最佳答案

extern 是全局链接的链接说明符。它的对应项是 static,它指定文件本地链接。由于全局链接是 C 中的默认设置,在声明中添加 extern 对函数声明没有影响。对于变量,它会阻止自动内存分配,使用它是只是在全局范围内声明变量的唯一方法。

如果你只是谷歌关键字,你会发现很多文章,例如这个: geeks for geeks

关于c - 外部函数原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447285/

相关文章:

比较两个 time_t 变量会生成编译器警告

c - 使用结构的 C 代码错误

C: 如何检查何时 coord[xy] == coords[x][y]?

c - 外部结构数组错误: array type has incomplete element type

CUDA - 埃拉托色尼筛分法

c - 让 gcc 内联并导出函数

c - Visual Studio 中的 extern 关键字行为

c++ - 为什么函数原型(prototype)在不需要时包含参数名称?

C++ 函数返回类型

c - 术语:前向声明与函数原型(prototype)