我是C编程的初学者。我正在使用turbo C ++ 4.0,我也不知道它是否是开源的。但是我已经从互联网上下载了这个。我写了非常简单的程序如下:
main()
{
printf("I see, I remember")
}
编译器显示以下错误:
函数printf应该有一个原型
以下警告:
函数应返回一个值。
我指的是E. Balaguruswamy编写的ANSI C编程。在本书中,这是第一个示例程序。我只是无法运行第一个程序。所以,请帮忙。
答案 0 :(得分:4)
首先,Turbo C ++是一个非常旧的已停产的开发环境,它不支持最新的C编程语言标准。您最好使用MinGW或Cygwin。
其次,粘贴在这里的代码缺少一些东西;要么你没有正确地复制它,要么你正在使用的书写得不好。以下是使用现代C代码应该的代码:
#include <stdio.h>
int main( void )
{
printf( "I see, I remember\n" );
}
从C99语言标准开始,不再允许隐式函数声明;如果未指定类型,编译器将不再假设函数返回int
。
此外,您不应将main
的参数列表留空;在这种情况下,我们使用main
关键字 1 指定void
不带参数。
printf
写入标准输出,标准输出通常是行缓冲,这意味着除非填充缓冲区或发送换行符,否则输出不会出现在控制台上({ {1}})。
同样在C99中,您不需要'\n'
的显式返回,即使它被键入以返回整数值;默认情况下,程序完成执行后,它将返回0到运行时环境。
<小时/>
main
的独特之处在于它可以不带参数(main
)或两个参数(int main( void )
)来处理命令行参数,而实现可以提供其他版本。
答案 1 :(得分:3)
由于你没有正确的#include <stdio.h>
你的编译器认为printf
是一个应该在某处声明的函数,因此:
函数printf应该有一个原型
另外,您忘记了行尾的;
答案 2 :(得分:1)
您在这里缺少分号(printf
)。在C中,每个语句都以分号结尾。您还要在要打印的字符串末尾缺少换行符(\ n)。您的printf("I see, I remember\n");
语句应如下所示:
int main()
关于警告。警告不是任何错误,但用于表明您的代码可能显示未定义的行为。
使用int
作为功能名称。这里,int
是函数的返回类型。 main()
之前的return 0;
表示该函数返回一个整数。
因此,您可能希望在程序结束时添加main
,因为int
函数需要return 0;
返回。 #include<stdio.h>
语句告诉您的程序已成功完成执行。
此外,您还缺少printf()
函数定义所来自的头文件printf()
。如果您不包含头文件,编译器会认为#include<stdio.h>
int main()
{
printf("I see, I remember\n");
return 0;
}
是一个应该在某处声明的函数。
您的代码应如下所示:
"coverage": "node_modules/.bin/babel-node node_modules/.bin/isparta cover --include-all-sources --report html node_modules/.bin/_mocha -- --reporter $npm_package_config_bdd_reporter",
我希望这可以解除你的疑虑。