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

Chinaunix

標(biāo)題: while流程最底層是怎么實(shí)現(xiàn)的 [打印本頁]

作者: komakoh    時間: 2013-12-17 21:59
標(biāo)題: while流程最底層是怎么實(shí)現(xiàn)的
RT,想不明白,不停調(diào)用對象?
作者: ____BlueGuy____    時間: 2013-12-17 23:24
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: ____BlueGuy____    時間: 2013-12-17 23:34
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: syre    時間: 2013-12-18 09:57
學(xué)一下匯編就知道了

基本就是先判斷一下條件,滿足就跳轉(zhuǎn)到循環(huán)外面。



作者: yulihua49    時間: 2013-12-18 10:24
komakoh 發(fā)表于 2013-12-17 21:59
RT,想不明白,不停調(diào)用對象?

看匯編。
cc -S ....
作者: hanxin83    時間: 2013-12-18 11:03
對象?! 天天睡著醒著想著的就是這個?!
作者: shan_ghost    時間: 2013-12-18 11:37
有點(diǎn)像最初的basic語言那樣:

10 sth
20 sth
30 if (xxx) goto 10

其中,10行的do沒有對應(yīng)指令,直接放30的goto里面去了;而30行相當(dāng)于 while(xxx)

對應(yīng)到機(jī)器碼/匯編上,30行大概會變成這樣:
cmp xxx, yyy  //比較xxx和yyy,也可以是其它形式
jnz/jz label_do     //如果上一條指令執(zhí)行后,標(biāo)志位非0/為0,則跳到label_do位置繼續(xù)執(zhí)行

當(dāng)然,視具體情況不同,也可能是功能類似的其它指令。
作者: komakoh    時間: 2013-12-18 14:40
是我想錯了,匯編我會的。。。我以為while語句可以在任何參數(shù)變動情況下直接跳出,運(yùn)行了一下發(fā)現(xiàn)不是的。。。只有全部執(zhí)行完才會進(jìn)行下一次判斷。。。我以為類似中斷那種可以直接跳出的東西。。。
objdump了一下發(fā)現(xiàn)。。。僅僅是個判斷。。。
想知道C++里面有沒有什么類似中斷的東西。。。

syre 發(fā)表于 2013-12-18 09:57
學(xué)一下匯編就知道了

基本就是先判斷一下條件,滿足就跳轉(zhuǎn)到循環(huán)外面。

作者: syre    時間: 2013-12-20 13:03
一種是signal,信號處理

或者更常見的做法是一個事件循環(huán),gui程序都是這樣干的。如果不想讓業(yè)務(wù)處理邏輯堵塞事件響應(yīng),就得搞成多線程




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2