→ angleevil:第一個問題是了解了,第二個問題是大概了解. 07/06 13:17
→ angleevil:問題看起來很蠢,但是卻是台灣大部分工程師常犯的錯誤喔 07/06 13:18
→ angleevil:功力還是不夠,喝. 07/06 13:19
→ angleevil:謝謝 07/06 13:20
稍微再補了一點 :Q
推 xatier:推幽默的精彩解說! 07/06 18:13
※ 編輯: Favonia 來自: 140.112.30.39 (07/06 20:11)
→ angleevil:就可以篤定問題出在那行程式碼之前。這是錯的。...<- 07/06 21:13
→ angleevil:意思是不是召喚外星人先出現阿? 07/06 21:13
嗯,應該就是你的意思。標準允許外星人在隨便一個地方出現。我改一
下文章 xDDD
※ 編輯: Favonia 來自: 140.112.30.39 (07/06 21:17)
→ angleevil:這是錯的。外星人是無敵的<--這個可能要移除一下,不然 07/06 21:20
→ angleevil:句子不通.喔,我懂了那篇的講法了.謝謝你跟另一個熱心 07/06 21:23
→ angleevil:的人. 07/06 21:24
嗯改好了 xD 謝謝你的建議。
※ 編輯: Favonia 來自: 140.112.30.39 (07/06 21:26)
→ angleevil:我才該道謝,因為英文不好,其實part3,只是有點感覺才來 07/06 21:41
→ angleevil:麻煩大家.因此才搞懂以前忽略的問題.<m.m> 07/06 21:42
※ 編輯: Favonia 來自: 140.112.30.39 (07/07 04:25)
推 ibmibmibm:你到底是有多討厭地球啊XDDDD 07/07 13:25
不好意思下次改火星好了 xDD
編輯:重寫一些細節 xD
※ 編輯: Favonia 來自: 140.112.30.39 (07/07 19:56)
→ angleevil:= =恩,誰來告訴我,怎麼把標題改成已解決 07/07 21:00
→ tropical72:E 修改內文標題, T 修改列表標題。 07/07 21:05
→ tropical72:連按 hh, 呼叫覆蓋在 ptt 桌面上的 小天使 07/07 21:05
→ angleevil:謝謝,發卡 07/07 21:13
推 VictorTom:推一下:) 07/07 22:42
編輯:補一下自己意見好了,因為這篇文章是按照網路上那篇文章打的,
我沒有完全同意 orz 我的意見標上黃色。不想被人當作我同意所有看法 xD
※ 編輯: Favonia 來自: 140.112.30.39 (07/08 06:16)
編輯:發現愚蠢的錯字 Orz
※ 編輯: Favonia 來自: 140.112.30.39 (07/08 06:42)
※ 編輯: Favonia 來自: 140.112.30.39 (07/08 06:42)
→ angleevil:=..=很完美了,可以結案了! 07/08 08:57
→ angleevil:補充一點好了-INT_MIN = INT_MIN,這才是作者想避免的 07/11 16:21
※ 編輯: Favonia 來自: 140.112.30.39 (07/23 22:22)
我想了好久天才想到要怎麼補一個很討厭的東西,修正我之前講的話:
標準雖然有一大堆規定,但是實際上那是針對虛擬機器定的。如果編譯器
不把真實記憶體直接當作虛擬機器的記憶體,則上述的最佳化可能都沒有關系。
引用這段標準:
| An implementation might define a one-to-one correspondence
| between abstract and actual semantics: at every sequence point,
| the values of the actual objects would agree with those
| specified by the abstract semantics. The keyword volatile would
| then be redundant.
這個 blog 比較像是立基於上面這種實作來批評。它假設實體的記憶體和
虛擬機器的記憶體之間有某種簡單的對應。但其實標準接著說...
| Alternatively, an implementation might perform various optimi-
| zations within each translation unit, such that the actual
| semantics would agree with the abstract semantics only when
| making function calls across translation unit boundaries. In
| such an implementation, at the time of each function entry and
| function return where the calling function and the called
| function are in different translation units, the values of all
| externally linked objects and of all objects accessible via
| pointers therein would agree with the abstract semantics.
| Furthermore, at the time of each such function entry the values
| of the parameters of the called function and of all objects
| accessible via pointers therein would agree with the abstract
| semantics. In this type of implementation, objects referred to
| by interrupt service routines activated by the signal function
| would require explicit specification of volatile storage, as
| well as other implementation-defined restrictions.
所以實作有很大的彈性可以亂搞。實務上的問題(包括模糊的標準如何解
讀)可以參考這裡:
http://www.gnu.org/software/autoconf/manual/html_node/Volatile-Objects.html
※ 編輯: Favonia 來自: 140.112.30.39 (07/24 22:10)
※ 編輯: Favonia 來自: 140.112.30.39 (07/30 10:31)