在代码中:
#include<stdio.h>
int main()
{
int t;
for(;scanf("%d",&t);printf("%d",t));
}
Run Code Online (Sandbox Code Playgroud)
当我将普通的整数作为输入时,程序按预期运行.我在Windows上工作,所以当我将Cntrl + Z扫描到参数t时,我没有得到EOF的值,即标准输出上的-1,而是前面存储的参数.此外,当我按Cntrl + D程序终止时,为什么Cntrl + D导致scanf返回0?
为什么在scanf Cntrl + C上我的编译器说:"进程以状态-107终止......"我不明白为什么会发生这种情况?请帮忙.
我在"Kernighan和Ritchie的C编程语言ANSI版"中读到,如果我在实际声明/定义它之前调用另一个函数中返回类型为int或void的函数,它应该可以正常工作.但是当我在代码块上运行它时,我仍然会收到警告.
#include<stdio.h>
#include<conio.h>
int main()
{
display();
}
void display()
{
printf("Hello World\n");
}
Run Code Online (Sandbox Code Playgroud)
警告是:"显示冲突的类型".
但是,如果我将程序更改为:
#include<stdio.h>
#include<conio.h>
void display()
{
printf("Hello World\n");
}
int main()
{
display();
}
Run Code Online (Sandbox Code Playgroud)
它的工作没有任何警告.这是为什么?请帮忙.
我不明白为什么这不起作用.谢谢!
#include<stdio.h>
#include<conio.h>
int main()
{
extern int i;
int i=20;
printf("%d",i);
}
Run Code Online (Sandbox Code Playgroud)
编译导致以下错误:
main.c: In function 'main':
main.c:6:9: error: declaration of 'i' with no linkage follows extern declaration
main.c:5:16: note: previous declaration of 'i' was here
Run Code Online (Sandbox Code Playgroud)
注意:CompileOnline在线编译代码