亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 2382 | 回復: 11
打印 上一主題 下一主題

初學,請教一個問題! [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2007-02-15 16:10 |只看該作者 |倒序瀏覽
我用下列代碼在turbo c 和 gcc中得到不同結果,不知哪一種是更加符合標準.

int main(void)
{
int j=5,q;
q=(++j)+(++j)+(++j);
printf("%d,%d",q,j);
return 0;
}

在Linux / GCC中為
22,8
在windows / TC中為
24,8

看了GCC的生成的匯編代碼,在計算q時,大致步驟用如下:

++j
++j
q=j+j
++j
q=q+j

結果為7+7+8=22

TC不是很熟悉,不知道怎樣能看到匯編,計算方式可能是
++j
++j
++j
q=j+j
q=q+j

結果為8+8+8=24

論壇徽章:
0
2 [報告]
發(fā)表于 2007-02-15 16:11 |只看該作者
代碼編寫者理應避免這種問題的出現。

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
3 [報告]
發(fā)表于 2007-02-15 16:41 |只看該作者
標準沒有規(guī)定它們的計算順序。

論壇徽章:
0
4 [報告]
發(fā)表于 2007-02-15 17:08 |只看該作者
不同的編譯器對這種自加的處理先后順序不同,所以得到不同的結果很正常。不過這樣寫的代碼,將來在不同平臺移植時,就是給自己找麻煩,埋地雷。呵呵。

論壇徽章:
0
5 [報告]
發(fā)表于 2007-02-15 20:09 |只看該作者
多謝各位指點!
看了一下C語言常見問題集,雖然沒太看明白不過大意應該是標準未規(guī)定這種狀況的處理方法.
自增減表達式會改變變量的值,導致除第一個j外其它變量成為無定義(undefined)變量,在編譯時gcc會提供警告(-Wall選項打開):
warning: operation on `j' may be undefined
標準對無定義行為沒有強制要求, 編譯器可以做任何事情。

論壇徽章:
0
6 [報告]
發(fā)表于 2007-02-15 21:29 |只看該作者
粗略地說,在一個表達式中改變一個對象多于一次時此表達式的行為是無定義的。

>> 自增減表達式會改變變量的值,導致除第一個j外其它變量成為無定義(undefined)變量

無定義說的是“行為”或“結果”(程序運行時的外在表現或者動作)是“無定義”的(無定義行為),不是用來修飾對象(變量)的,即沒有“無定義變量”這一說。

[ 本帖最后由 whyglinux 于 2007-2-15 21:33 編輯 ]

評分

參與人數 1可用積分 +2 收起 理由
langue + 2 我很贊同

查看全部評分

論壇徽章:
0
7 [報告]
發(fā)表于 2007-02-16 16:24 |只看該作者
lz的id原來是“人品有問題”啊。。。

論壇徽章:
0
8 [報告]
發(fā)表于 2007-02-16 16:34 |只看該作者
原帖由 W.Z.T 于 2/16/2007 16:24 發(fā)表
lz的id原來是“人品有問題”啊。。。


論壇徽章:
0
9 [報告]
發(fā)表于 2007-02-18 14:45 |只看該作者
應該和系統(tǒng)的進程的輪循有關系,盡量做到原子操作!個人意見請拍磚!

論壇徽章:
0
10 [報告]
發(fā)表于 2007-02-19 08:55 |只看該作者
原帖由 whyglinux 于 2007-2-15 21:29 發(fā)表
粗略地說,在一個表達式中改變一個對象多于一次時此表達式的行為是無定義的。

>> 自增減表達式會改變變量的值,導致除第一個j外其它變量成為無定義(undefined)變量

無定義說的是“行為”或“結果”(程 ...


確實應該是無定義的行為,不是無定義變量.

[ 本帖最后由 RPYWT 于 2007-2-19 09:00 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協(xié)會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP