我的教科书写下预定义函数的定义如下:
预定义意味着它是一个已经编写和编译的函数,并在链接时与我们的程序链接在一起。
我无法理解它的含义。你可以解释吗 ?我实际上是C的初学者。我已经搜索了编译和链接的术语。但这个定义对我来说没有意义。
我的教科书还写道,printf
也是一个预定义的函数。
答案 0 :(得分:5)
C允许不同形式的主要陈述。以下表格是 允许的。
main()的
int main()
void main()
我要在那里停下来。标准化的C中从未允许void main()
。同样地说:
注意:有些作者建议加入声明
#include <stdio.h>
在使用任何输入/输出库的所有程序的开头 功能。但是,对于函数 printf ,这不是必需的 和 scanf 已被定义为C语言的一部分。
依靠printf
(或任何库函数)的隐式定义是非常糟糕的做法。
这使我相信作者对“已定义”的使用充其量是不稳定的,因为“定义”和“预定义”是在C规范中具有确切含义的词。
慷慨的解释是库函数通过C库链接,这些库由编译器提供或在您的系统上找到,通常是glibc。您始终可以在Linux系统上运行ldd
,以查看您的程序使用了哪个动态库。
答案 1 :(得分:2)
更好 正确(和适当)使用的术语库函数。
详细说明,库包含预先编写和编译的代码。要使用代码(例如:函数),您需要将库链接到应用程序并使用库代码(例如:调用函数)。您将获得功能,就好像应用程序中集成的库中存在的代码一样。
了解C standard library和check the list of library functions
注意:不是 所有 这些库是标准库。