本篇內(nèi)容主要講解“C++怎么避免在表達(dá)式中使用無定義的運(yùn)算次序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C++怎么避免在表達(dá)式中使用無定義的運(yùn)算次序”吧!
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、和平ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的和平網(wǎng)站制作公司
ES.43: 避免在表達(dá)式中使用無定義的運(yùn)算次序
你無法知道這樣的代碼會(huì)做什么??梢浦残浴km然可以帶來某些實(shí)際的好處,但可能只要換一個(gè)編譯器(例如編譯器的下一個(gè)版本)或者修改了優(yōu)化設(shè)定情況就會(huì)發(fā)生變化。
Note(注意)
C++17收緊了有關(guān)運(yùn)算順序的規(guī)則:除了從右向左的賦值之外都是從左向右計(jì)算,函數(shù)參數(shù)的求值次序是無定義的。
However, remember that your code may be compiled with a pre-C++17 compiler (e.g., through cut-and-paste) so don't be too clever.
但是,還是不要忘了,你的代碼可能被C++17之前的編譯器編譯(例如通過剪切和粘貼),不要過于聰明。
Example(示例)
v[i] = ++i; // the result is undefined
A good rule of thumb is that you should not read a value twice in an expression where you write to it.
一條非常好的經(jīng)驗(yàn)規(guī)則是:不要在一個(gè)需要對(duì)其寫入的表達(dá)式中兩次讀取變量的值。
Enforcement(實(shí)施建議)
Can be detected by a good analyzer.
這個(gè)問題可以被良好的代碼分析器檢出。
到此,相信大家對(duì)“C++怎么避免在表達(dá)式中使用無定義的運(yùn)算次序”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享標(biāo)題:C++怎么避免在表達(dá)式中使用無定義的運(yùn)算次序
分享URL:http://chinadenli.net/article44/gpdphe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、App開發(fā)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)