成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么f(i = -1, i = -1)是未定義行為?

開發 后端 前端
最近在讀 order of evaluation violations,其中的一個例子使我很困惑。為什么f(i = -1, i = -1)是未定義行為?下面給出最佳答案。

問題:

最近在讀 order of evaluation violations,其中的一個例子使我很困惑。

1)如果對一個標量對象的副作用相對于對這個標量對象的另一個副作用是無序的,那么這是未定義行為。

  1. //代碼片段  
  2. f(i=-1,i=-1);//undefined behavior 未定義行為 

在這段代碼中,很明顯 i 是一個標量對象。

算術類型(3.9.1),枚舉類型,指針類型,指針成員類型(3.9.2),空指針類型和被const或volatile修飾的類型(3.9.3)等統稱為標量類型。

從這句話中我看不出上面那句代碼有什么分歧的地方。我認為不論***個參數還是第二個參數先執行,i最終都是-1,并且兩個參數的值都是-1。

有人能解釋清楚這些嗎?

***答案:

既然運算是無序的,也就不能說分配任務的指令不能交錯執行。也許會選擇***的方式去運行,由CPU的架構來決定。引用下面這句話來說明:

如果A在B之前是無序的并且B在A之前是無序的,那么存在兩種可能性:

  • 預估A和B是無序的:它們可能以任意的順序運行并且可能會重疊(在一個線程的執行中,編譯器可能會交錯組織包含A和B的CPU指令)。
  • 預估A和B是無法確定的順序:它們可能以任意順序運行但是一定不會重疊。或者A在B執行之前完成或者B在A執行之前完成。下一次執行同樣的語句時,執行的順序有可能是相反的。

假設運算執行后,把-1存進一個內存地址,就這個行為自身而言,這似乎并不會引發任何問題。但是如果一個指令和另一個指令交錯執行操作同一個內存地址,你不能說編譯器不會把這些指令優化成一個獨立的具有同樣效果的指令集,這樣就會出錯了。

例如,假想把內存清零然后再遞減是***效的。現在開始值是-1,然后就是:

  1. 1 f(i=-1,i=-1)   

也許會變成:

  1. clear i //清空 i  
  2. clear i //清空 i  
  3. decr i //遞減 i  
  4. decr i //遞減 i 

現在i是-2。

這也許是一個假的例子,但可能是真的。

原文鏈接: stackoverflow   翻譯: 伯樂在線 - 閃了腰的企鵝

譯文鏈接: http://blog.jobbole.com/62650/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2013-12-12 14:04:28

C編程語言

2019-09-11 09:09:56

++ii++編程語言

2021-08-02 09:31:20

Python工具代碼

2009-09-16 13:53:47

WebForm

2024-04-08 08:18:35

f2JavaScripHTTP

2021-10-13 06:49:15

網絡 IO

2020-07-22 08:01:41

Python開發運算符

2016-05-19 10:57:57

Android N谷歌開發者大會

2022-12-09 15:38:54

Cppcheck靜態分析工具

2024-02-20 22:13:49

SQL語句編程

2025-05-22 08:35:00

Go開發編程

2022-04-26 16:56:20

行為數據數據

2020-05-12 09:39:32

計算機時間系統

2021-11-15 06:56:45

MyBatis開發項目

2018-10-08 14:34:55

CPU實測散片

2012-10-09 11:00:15

IBMdw

2012-08-24 10:47:33

Linux統計工具

2025-02-24 09:00:00

CPUI/O密集型任務

2009-02-06 14:04:00

曙光I620r-F服務器評測
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品国产精品国产专区不片 | 久久精品国产免费高清 | 日韩一区二区三区视频在线观看 | 五月婷婷婷 | 99re热精品视频国产免费 | 在线日韩精品视频 | 午夜大片| 亚洲精品一区二区三区在线观看 | 九九热精品视频 | 色综合99| 成人久久 | 亚洲国产一区二区三区 | xx视频在线观看 | 一区二区三区精品视频 | 成人在线免费观看av | 综合九九| 欧美日韩一区二区在线播放 | 深夜福利亚洲 | 成人亚洲 | 中国大陆高清aⅴ毛片 | 国产日韩欧美在线 | 精品国产一区二区三区观看不卡 | 九九亚洲 | 91精品国产一区二区三区 | 久久久久久国产一区二区三区 | 精品久久久久久久久久 | 毛片在线免费播放 | 成人免费高清 | 精品丝袜在线 | 亚洲成人毛片 | 日韩免费1区二区电影 | 四虎影院在线观看免费视频 | 99影视| 国产日韩欧美 | 亚洲一本 | 久久久久亚洲 | 国产精品一区一区 | 欧美片网站免费 | 亚洲www| 天天弄| 操一草|