Printf未在此范围内声明

AV *_*198 2 c

我刚刚开始学习C.但是我所引用的书中的第一个程序会产生一个错误,即"printf未在此范围内声明"

我正在输入完全按照书中给出的代码.仍然存在错误. 书

码

R S*_*ahu 15

这本书已经过时了.

#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)

到你的程序.它提供了声明printf和许多其他功能.有关文件中定义的函数的完整列表,请查找其文档.


abh*_*ora 7

编译器未找到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中的所有标识符都必须在使用前声明。对于函数和变量都是如此。对于函数,声明必须在函数的第一次调用之前。完整的声明包括返回类型以及参数的数量和类型。这也称为函数原型。

您也可以在同一编译单元中调用函数之前定义一个函数。或者,您可以在调用它之前声明它。最好(并非总是)包括包含函数声明的头文件。

并考虑购买一本新书。作者应该提到头文件包含。


Cin*_*out 6

printf()stdio.h头文件中声明。

将此添加为程序的第一行:

#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)