我刚刚开始学习C.但是我所引用的书中的第一个程序会产生一个错误,即"printf未在此范围内声明"
R S*_*ahu 15
这本书已经过时了.
加
#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)
到你的程序.它提供了声明printf
和许多其他功能.有关文件中定义的函数的完整列表,请查找其文档.
编译器未找到printf
函数声明。这就是为什么它显示编译错误。
printf
函数的正确声明(ISO / IEC 9899:1999)是:
int printf(const char * restrictformat, ... );
Run Code Online (Sandbox Code Playgroud)
您可以在调用之前像上面那样声明该函数,或者可以包含header file
其中包含该函数的声明。但是,仅包含包含函数声明(#include <stdio.h>
for printf
)的头文件将是最简单和最安全的。
如果您想知道为什么在调用函数之前需要提供函数的声明,可以看一下这个问题。解释如下:
设计C编程语言是为了使编译器可以实现为一遍编译器。在这种编译器中,每个编译阶段仅执行一次。在这样的编译器中,您不能引用源文件中稍后定义的实体。
此外,在C语言中,编译器一次只解释一个编译单元(通常是.c文件和所有包含的.h文件)。因此,您需要一种机制来引用另一个编译单元中定义的函数。C中的所有标识符都必须在使用前声明。对于函数和变量都是如此。对于函数,声明必须在函数的第一次调用之前。完整的声明包括返回类型以及参数的数量和类型。这也称为函数原型。
您也可以在同一编译单元中调用函数之前定义一个函数。或者,您可以在调用它之前声明它。最好(并非总是)包括包含函数声明的头文件。
并考虑购买一本新书。作者应该提到头文件包含。