→ tuiokh: 副廠的Earpod跟原廠會有差嗎?05/19 16:55
推 evadodoya: 那你覺得盜版的beats跟正版的有差嗎05/19 17:05
→ u87654321: 所以副場的earpod比較好囉?05/19 17:40
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.155.18
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1460650023.A.3AF.html
推 longlongint: 直覺覺得是反串文的我怎麼了 04/15 00:08
推 ilms49898723: Undefined Behavior 結案 04/15 00:11
→ longlongint: 置底十戒之八 04/15 00:11
→ longlongint: 十三戒之八 04/15 00:12
→ alkali5566: 感謝樓上幾位幫忙QQ,其實這是考試題目,所以我沒有 04/15 00:15
→ alkali5566: 想到是這方面的問題......學到了一課 04/15 00:15
→ Schottky: 考試考 undefined behavior 是怎樣 04/15 00:19
→ alkali5566: 而且給的答案是說0...沒說是Undefined Behavior 04/15 00:25
→ alkali5566: 題目我是有簡化過,不過大致上就是這邊有問題 04/15 00:25
→ wtchen: 下次記得看置底文喔,話說回來哪間學校出這種考題阿? 04/15 00:31
→ Jockey66666: 把老師當掉 04/15 00:31
→ Schottky: 我剛剛用 gcc 跑,結果是 1 耶~ XDD 04/15 00:31
→ Schottky: 然後我有開 -Wall 所以有出現 warning 04/15 00:32
→ Schottky: 快,拿這結果回去嗆老師要分數 04/15 00:33
→ alkali5566: 校名請恕我不說XD 我會跟老師反應這件事,再次感謝! 04/15 00:35
推 winken2004: 考試題...... 04/15 01:30
→ fatrabitree: 去嗆老師,連undefined behavior都不知道 04/15 01:39
→ tinlans: 老師真懶,改成 j = ++i 和 j = i++ 就沒事了,叫他重出 04/15 01:59
我還是先澄清一下好了,原題目是給一段code要我們debug+寫出debug後的output,
不過參考答案(好像是TA寫的)沒有提到這題有undefined behavior,
所以如果老師說這題我們應該要把這段錯誤改掉的話,我也就認了啦。
(雖然我之前沒聽過undefined behavior)
※ 編輯: alkali5566 (36.239.155.18), 04/15/2016 02:24:51
→ wtchen: 搞不好是TA搞錯… 04/15 02:30
推 wtchen: 不過老師居然沒教undefined behavior有點… 04/15 02:35
推 Frozenmouse: 我覺得很多老師不會教這個的…XD 04/15 02:46
推 bibo9901: 我一直覺得C++應該要直接讓這種statement不合法 XD 04/15 03:23
→ Schottky: 樓上,這類問題statement不見得全部都偵測得出來 04/15 03:42
→ Schottky: 寫複雜一點而逃過compiler檢查是有可能的 04/15 03:43
推 stupid0319: 會有人寫這樣的程式碼搞自己嗎? 04/15 07:01
推 suhorng: 不會搞自己, 但是踩到雷還是有可能的, 不小心 alias 到.. 04/15 07:18
推 ronin728: unsequenced expression,詳見C++標準規格書ISO/IEC JTC 04/15 11:14
→ ronin728: 1 SC22 WG21 N 3690第10頁 04/15 11:14
→ ronin728: Clang有很好的前端,這會有警告。GCC的話我沒試過 04/15 11:16
→ Schottky: 我是看 man gcc 的 -Wsequence-point 參數說明 04/15 11:53
→ Schottky: 上面說有些更複雜的狀況無法被這個參數偵測到 04/15 11:55
→ Schottky: 但一般來說應付類似程式中的類似問題還是算相當有效 04/15 11:56
→ Schottky: 你只要加 -Wsequence-point 或 -Wall 都會開啟這項警告 04/15 11:57
→ bibo9901: 我意思 有賦值(assign)的statement不視為expression 04/15 16:05
→ bibo9901: 一併解決了 if( x = 1 ) 這種筆誤... 04/15 16:06
→ Schottky: 贊成! 那些愛用 if (-1==(fd=open(...))) 的人我早就 04/15 16:11
→ Schottky: 看他們不順眼很久了。 04/15 16:11
→ Schottky: 還有那種 while (-1==(count=read(...))) 根本是邪教 04/15 16:17
→ bibo9901: 缺點就是 x = y = z = 1 要分成三個 stmt 了 04/15 16:24
→ ACMANIAC: 教到現在還沒教整個程式語言最重要的undefined behavior 04/16 09:12
→ ACMANIAC: 那上課到底在教什麼啊...... 04/16 09:12
→ TobyH4cker: 教授不可能教吧XD 學生當自強 除非教授是神人 04/16 09:44
→ Schottky: 教授也許不會吐 undefined behavior 這兩個字 04/16 11:04
→ Schottky: 但教授一定要教不可以在同一條 statement 裡面賦值兩次 04/16 11:05
→ Schottky: 原來是缺乏神人教授指點,難怪我們都沒有水晶球 04/16 11:06
推 me356500: 大學考這個哦? 04/18 22:07