如題,我在UBUNTU係統下利用記事本編寫了一段C程序,程序如下:
main() { char h="Hello World!"; printf("%c\n",h); }
利用終端查看,命令如下:gcc -g -Wall hello.c -o hello.c
結果出現這樣的錯誤:
hello.c:1:1: 警告: 返回类型默认为‘int’ [-Wreturn-type] hello.c: 在函数‘main’中: hello.c:3:9: 警告: 初始化将指针赋给整数,未作类型转换 [默认启用] hello.c:4:2: 警告: 隐式声明函数‘printf’ [-Wimplicit-function-declaration] hello.c:4:2: 警告: 隐式声明与内建函数‘printf’不兼容 [默认启用] hello.c:5:1: 警告: 在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
這個是什麼問題呢?如何才能看到文字輸出?
ringa_lee2017-04-21 10:57:21
#include <stdio.h>
int main(int argc,char *argv[])
{
char str[] = "hello world";
printf("%s\n",str);
return 0;
}
提示隱式聲明是因為沒有包含頭檔:stdio.h
你的 printf
参数用的是 %c
(字符),而你想要打印的是字符串应该用 %s
。偏要打印 %c
,可以用 printf("%c",str[0]);
main
函数里没有定义返回值,默认为 nt
, 而在程式結尾沒有回傳值,所以提示
警告: 在有回傳值的函數中,控制流程到達函數尾 [-Wreturn-type]
ringa_lee2017-04-21 10:57:21
其實我覺得,出錯訊息就非常明顯,至於%d,%c,%s之類的,應該讓提問者自己了解。
如果看了這個出錯訊息也找不到問題,那就得好好反思一下了。
大家讲道理2017-04-21 10:57:21
我有幾個建議: