请养成向编译器询问警告的习惯。有了gcc
它是-Wall
选项,并且(在 Linux/Debian/Sid gcc 4.6 上)我正在david.c
使用以下gcc -Wall -g -o david david.c
命令获取您的示例文件:
david.c:4:1: warning: return type defaults to 'int' [-Wreturn-type]
david.c: In function 'main':
david.c:11:5: warning: format '%s' expects argument of type 'char *', but argument 2 has type 'int' [-Wformat]
david.c:11:5: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'double' [-Wformat]
david.c:12:1: warning: control reaches end of non-void function [-Wreturn-type]
新手应该更正他的代码,直到编译器不再发出警告。在极少数情况下可以接受留下警告(对于经验丰富的 C 程序员来说,这种情况每年应该少于一次)。