問題:
Stroustrup 聲稱現代硬體不能儲存小於單字的物件與現代處理器(例如x86)的實際情況發生衝突,現代處理器通常處理位元組大小的儲存和檢索。
Stroustrup 的預期意義:
Stroustrup 可能指的是沒有明確定義的記憶體模型的假設ISA,其中位元組儲存可能會在處理器週期內覆蓋相鄰位元組。
現代硬體實作:
但是,現代 ISA 的情況並非如此。位元組儲存指令是原子的,不會幹擾周圍的字節,無論是否使用以下方式實現:
異常和注意事項:
雖然現代CPU 優先考慮位元組大小的儲存效率,但可能需要考慮一些細微差別:
對 C 的影響:
Stroustrup的引言強調了以下內容的重要性:
結論:
現代x86 硬體和許多其他現代ISA提供高效可靠的字節存儲,反駁了 Stroustrup 的主張。然而,對於程式設計師和編譯器設計者來說,了解記憶體模型的含義以確保資料完整性和線程安全仍然至關重要。
以上是現代硬體真的可以在不影響相鄰位元組的情況下儲存位元組嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!