Re: [問題]一個觀念問題
※ 引述《e12518166339 (耐綸)》之銘言:
: 另一個問題是
: 這是光碟中的範例
: #include <stdio.h>
: using namespace std;
: void main()
: {
: for (int i=1;i<=9;i++)
: {
: for(int j=1;j<=9;j++)
: {
: printf("%d*%d= %2d ",i,j,i*j);
: }
: printf("\n");
: }
: }
: 我再終端機下
: 執行
: nylon7@nylon7-desktop:~/桌面/LinuxCPP/ch01$ g++ loop.cpp
: loop.cpp:1: 錯誤: 「::main」 必須回傳 「int」
: 後來同學叫我把void改成int
: 然後最外面的{}打入return 0;就可以了
: 我想請問為什麼範例會有這樣的錯誤
: 我把錯誤訊息key上GOOGLE似乎都沒有類似的狀況
: 以上
你的書太舊了。
這個範例裡除了 using namespace 是 c++ 的東西之外,
剩下的都是 c 語言的寫法。
在 c++ 標準裡有一條:
If control reaches the end of main without encountering a return statement,
the effect is that of executing return 0;
也就是說依照標準實做的編譯器,在看到你沒有 return 敘述的時候
會自動加上 return 0; ,所以 return type 不能是 void。
c 語言沒有明確提到 main function 的 return type,
所以通常 c 編譯器遇到這種情況只會給你警告,不會編譯不過。
你可以把 using namespace 那一行拿掉再改用 gcc,而不是 g++ 編譯一次看看。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.231.68.160
※ 編輯: freesamael 來自: 118.231.68.160 (07/12 13:56)
推
07/12 19:49, , 1F
07/12 19:49, 1F
→
07/12 19:50, , 2F
07/12 19:50, 2F
→
07/12 19:50, , 3F
07/12 19:50, 3F
→
07/12 19:52, , 4F
07/12 19:52, 4F
→
07/12 19:52, , 5F
07/12 19:52, 5F
推
07/12 19:54, , 6F
07/12 19:54, 6F
→
07/12 21:16, , 7F
07/12 21:16, 7F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章