青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 16,  comments - 34,  trackbacks - 0

一、依據

C++標準規定:main函數可以省略返回語句,等效于返回0。

5. A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling exit with the return value as the argument.
If control reaches the end of main without encountering a return statement, the effect is that of executing
return 0;

                ——ISO C++03 3.6.1 Main function p44/72
                ——ISO C++98 3.6.1 Main function p43/69

注意:
1. main函數的返回類型是int, 不是void或者其他類型。
2. 該規則僅僅對main函數適用。
3. 對其他函數,如果省略返回值, 將得到一個警告
4. 應該避免3的情況。




二、 示例

        二、1. 一個合法的最小化的完整C++程序如下:
int main() {}

        二、2. 省略的確切含義

同時,標準中的用語是很考究的:
“當控制到達main結束處時沒有遇到return語句,效果與返回0相同”。

即是說,標準規定的是“對省略return的分支,認為返回0”。
同時,標準也允許其他分支含有返回語句。
如下:
int main(int argc,char* []) {
    
switch (argc)
    {
    
case 1:
        
// error, should passing argument
        return -1;
        
// parse arguments
    default:
    
case 3// parser argv[2]
    case 2// parser argv[1]
        ;
    }
    
// do some work
    
// control reaches here
}

沒有輸入命令行參數時, 返回一個錯誤。
其他情況,當控制達到main的結尾處時,效果同return 0;

        二、3. 對于其他函數,沒有這種“優待”
如:
int not_main(int argc) {
    
if (argc<=1)
        
return -1;
}
int main(int argc,char* []) {
    
return not_main(argc);
}

not_main無疑將得到一個警告。
程序在沒有輸入命令行參數時的返回值將無法預知



三、驗證

        三、1. ERRORLEVEL

windows下,可以通過 %ERRORLEVEL% 查詢上一次程序返回值。

結果與判斷相吻合:
1. minimalist有確定的返回值0
2. omit_return_in_main有確定的返回值-1或0
3. 對omit_return_in_other
3.1 有命令行參數時,返回值確定為0。
3.2 無命令行參數時,返回值無法預知


        三、2 匯編代碼

更嚴謹的驗證方法是查看匯編代碼。

可以看到,在minimalist與omit_return_in_main的main函數中都有將eax置0的代碼。
在omit_return_in_other中的not_main函數中,沒有這樣的代碼。




四、 例外

VC6在這點上與標準不符。

        四、1. 對omit_return_in_main,它給出的警告:

warning C4715: 'main' : not all control paths return a value

說明它在這點上與標準不符。
顯然,在有命令行參數的時候,程序結果無法預知


        四、2. 對minimalist,它給出的警告很搞笑:

warning C4508: 'main' : function should return a value; 'void' return type assumed

暴露出它另一個與標準不符的地方——main返回void。
顯然,任何情況下,程序結果都無法預知

        四、3. 對omit_return_in_other,是程序員的錯誤。




五、 實踐

不知道為什么C++標準在這里開一個“后門”。
——C++在許多地方都是很嚴謹的。

在實際應用中,盡量不要采用這一特性, 因為:
1. 舊編譯器不支持
2. C不支持——如果希望main能同時按C語言編譯的話

對于演示用的C++代碼,與主題無關的代碼行能省則省,則可以使用這一特性。
比如:C++標準中的示例代碼幾乎都采用了這一特性。
由此可得出,C++標準在這里開后門的原因是——讓C++標準更薄^_^



相關鏈接:

——示例代碼
http://immature.googlecode.com/svn/trunk/iMmature/sample/omit_return_in_main



Creative Commons License
作品采用知識共享署名-非商業性使用-相同方式共享 2.5 中國大陸許可協議進行許可。

轉載請注明 :
文章作者 - OwnWaterloo
發表時間 - 2009年04月26日
原文鏈接 - http://m.shnenglu.com/ownwaterloo/archive/2009/04/26/omit_return_in_main.html

posted on 2009-04-26 14:37 OwnWaterloo 閱讀(3488) 評論(1)  編輯 收藏 引用

FeedBack:
# re: main函數中省略返回語句[未登錄]
2013-04-14 23:22 | null
LOL  回復  更多評論
  
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(8)

隨筆檔案(16)

鏈接

搜索

  •  

積分與排名

  • 積分 - 198759
  • 排名 - 134

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国模私拍一区二区三区| 亚洲最新视频在线播放| 一本色道久久精品| 一本色道久久| 午夜在线精品偷拍| 亚洲一区二区三区在线观看视频 | 国内精品美女av在线播放| 国产日韩欧美自拍| 国产一区二区三区电影在线观看| 国产午夜精品理论片a级大结局| 国产午夜精品全部视频播放| 伊人色综合久久天天五月婷| 一本不卡影院| 久久嫩草精品久久久精品| 欧美激情区在线播放| 一区二区毛片| 久久综合中文字幕| 欧美三级第一页| 伊人蜜桃色噜噜激情综合| 亚洲在线播放| 亚洲电影下载| 日韩午夜在线播放| 久久麻豆一区二区| 国产精品爽黄69| 亚洲靠逼com| 久久综合给合久久狠狠色 | 一区在线影院| 亚洲欧美国产三级| 亚洲高清在线| 久久国产一区| 国产精品久久一级| 亚洲作爱视频| 欧美国产日韩一区二区| 久久国产精品久久国产精品| 国产精品ⅴa在线观看h| 亚洲精品极品| 免费观看成人www动漫视频| 亚洲字幕一区二区| 欧美视频中文在线看| av成人免费观看| 亚洲高清视频一区| 久久综合九色九九| 一区二区三区在线视频播放| 欧美一级片一区| 亚洲视频在线一区| 国产精品久久久久久模特 | 久久精品免视看| 亚洲一区3d动漫同人无遮挡| 欧美三日本三级三级在线播放| 亚洲精品社区| 亚洲欧洲久久| 欧美国产一区视频在线观看| 亚洲激情精品| 91久久久亚洲精品| 欧美人与性动交cc0o| 亚洲免费成人| 日韩手机在线导航| 欧美午夜大胆人体| 欧美精品成人| 欧美成人一区二区三区| 在线精品视频一区二区| 免费国产一区二区| 另类酷文…触手系列精品集v1小说| 好看的日韩视频| 嫩模写真一区二区三区三州| 久久免费国产精品| 91久久久国产精品| 亚洲精品视频在线观看网站| 欧美日韩一级片在线观看| 亚洲综合不卡| 欧美一区日韩一区| 激情视频一区二区| 欧美激情亚洲精品| 欧美日韩国内自拍| 先锋影音网一区二区| 欧美一区二区三区另类| 在线观看一区视频| 亚洲精品视频一区| 国产欧美日韩综合| 欧美黄色成人网| 欧美午夜精品久久久久久超碰| 小黄鸭精品aⅴ导航网站入口| 欧美专区日韩专区| 日韩亚洲综合在线| 亚洲欧美日本国产专区一区| 国产一区二区三区无遮挡| 欧美黄色影院| 国产精品乱码人人做人人爱| 美日韩精品免费观看视频| 欧美三日本三级三级在线播放| 久久久www| 欧美日韩视频在线第一区| 久久久99精品免费观看不卡| 欧美日本国产精品| 久久综合九色欧美综合狠狠| 欧美精品在线一区| 久久久国产91| 欧美三级在线视频| 老司机午夜精品视频| 欧美三级网址| 亚洲国产欧美日韩另类综合| 国产欧美精品日韩| 亚洲免费不卡| 亚洲电影网站| 午夜精品婷婷| 亚洲一区二区三区中文字幕在线| 裸体丰满少妇做受久久99精品| 欧美一区二区日韩一区二区| 欧美日韩高清在线| 欧美激情第3页| 狠狠色丁香久久综合频道| 中日韩男男gay无套| 亚洲精品久久久久久久久久久 | 欧美精品一区视频| 久久青草久久| 国产精品永久免费| 亚洲美女色禁图| 91久久精品国产91久久性色tv| 欧美在线观看视频在线| 欧美一区二区啪啪| 国产精品美女久久久浪潮软件 | 久久精品视频在线观看| 欧美日本韩国在线| 亚洲国产精品一区制服丝袜 | 午夜精品一区二区三区在线| 欧美精品成人在线| 欧美激情一区二区| 在线免费观看日本欧美| 欧美一区1区三区3区公司| 亚洲欧美影院| 国产精品日韩欧美一区二区三区 | 亚洲福利视频网站| 亚洲高清不卡在线| 久久天堂av综合合色| 久久一日本道色综合久久| 国产一区激情| 久久久久久电影| 美女精品在线观看| 亚洲国产精品va在看黑人| 久久亚洲一区二区三区四区| 毛片av中文字幕一区二区| 在线观看日韩av先锋影音电影院| 久久久久久久综合狠狠综合| 欧美mv日韩mv国产网站app| 精品电影一区| 久久夜色精品国产亚洲aⅴ | 亚洲国产精品一区二区www| 美日韩精品视频| 欧美高清hd18日本| 欧美成人三级在线| 亚洲狼人精品一区二区三区| 欧美日韩一区二区视频在线观看| 一区二区三区四区五区精品| 午夜视频一区二区| 国内外成人免费激情在线视频网站| 久久er99精品| 91久久综合| 欧美一区二区日韩| 亚洲成人在线| 欧美日韩你懂的| 久久99在线观看| 亚洲国产日韩欧美一区二区三区| 亚洲一区久久久| 伊人久久大香线蕉av超碰演员| 欧美日本一道本| 亚欧成人在线| 亚洲三级电影在线观看| 久久成人精品电影| 99视频精品免费观看| 国产亚洲综合性久久久影院| 欧美大色视频| 久久国产精品高清| 国产精品99久久99久久久二8| 浪潮色综合久久天堂| 一区二区三区视频在线播放| 国产一区二区三区久久 | 欧美在线电影| 亚洲激情一区二区| 国产精品一区二区三区四区五区| 久久全国免费视频| 亚洲小少妇裸体bbw| 亚洲国产成人久久综合一区| 欧美中文字幕在线播放| 中文日韩电影网站| 韩日在线一区| 亚洲欧美一级二级三级| 亚洲第一精品影视| 久久黄色影院| 亚洲欧美国产77777| 日韩亚洲国产欧美| 在线精品视频在线观看高清| 国产精自产拍久久久久久| 欧美日韩另类在线| 牛牛精品成人免费视频| 欧美在线一二三| 亚洲女性裸体视频| 亚洲一级黄色av| 亚洲午夜黄色| 亚洲一区二区欧美| 亚洲天堂久久|