[問題] destructor跟atexit註冊函式的順序

看板C_and_CPP (C/C++)作者 (咕啾咕啾魔法陣)時間16年前 (2010/06/02 00:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 這是利用以下兩個特性寫的hello world 1.atexit註冊的函式比destructor早執行 2.stderr不經過buffer 但是在freebsd跑順序會變成 local atexit→destructor→global object的atexit 希望得到的正確結果: 輸出為hello world(其實比較想知道哪個的執行順序是標準) 程式跑出來的錯誤結果: 下面網頁執行結果正確 可是在別的freebsd工作站跑的結果是 hlo world el 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) g++(不知道下面網頁用gcc還是vc) 有問題的code: (請善用置底文標色功能) http://codepad.org/dNRDZeU7 補充說明: clog為什麼最早輸出? 它不是有用到buffer? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.226.149 ※ 編輯: loveflames 來自: 140.134.226.149 (06/02 01:19)
文章代碼(AID): #1C1JXhy5 (C_and_CPP)
文章代碼(AID): #1C1JXhy5 (C_and_CPP)