最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C/C++編程筆記:C語(yǔ)言和C++中的未定義行為,及其優(yōu)缺分析

2021-01-27 21:12 作者:C語(yǔ)言編程__Plus  | 我要投稿


考慮以下C / C ++程序并嘗試猜測(cè)輸出什么?

舉例一:


舉例二:


舉例三:


舉例四:


舉例五:


舉例六:


舉例七:


以上所有程序的輸出都是不可預(yù)測(cè)的(或不確定的)。編譯器(實(shí)現(xiàn)C / C ++標(biāo)準(zhǔn))可以自由地做任何事情,因?yàn)镃和C ++標(biāo)準(zhǔn)未定義它們。

像Java這樣的語(yǔ)言會(huì)立即發(fā)現(xiàn)錯(cuò)誤,但是在少數(shù)情況下,像C和C ++這樣的語(yǔ)言會(huì)繼續(xù)以靜默但有錯(cuò)誤的方式執(zhí)行代碼,這可能會(huì)導(dǎo)致無(wú)法預(yù)測(cè)的結(jié)果。該程序可能會(huì)因任何類(lèi)型的錯(cuò)誤消息而崩潰,也可能在不知不覺(jué)中損壞數(shù)據(jù)的情況,這是一個(gè)嚴(yán)重的問(wèn)題。

了解未定義行為的重要性

如果用戶(hù)開(kāi)始在C / C ++環(huán)境中學(xué)習(xí)并且對(duì)未定義行為的概念不清楚,那么將來(lái)可能會(huì)帶來(lái)很多問(wèn)題,例如在調(diào)試其他人的代碼時(shí)可能實(shí)際上很難跟蹤根目錄。未定義的錯(cuò)誤。

未定義行為

風(fēng)險(xiǎn)和缺點(diǎn)程序員有時(shí)依賴(lài)未定義行為的特定實(shí)現(xiàn)(或編譯器),這可能會(huì)在更改/升級(jí)編譯器時(shí)引起問(wèn)題。例如,最后一個(gè)程序在大多數(shù)編譯器中產(chǎn)生72作為輸出,但是基于此假設(shè)實(shí)現(xiàn)軟件不是一個(gè)好主意。

未定義的行為也可能導(dǎo)致安全漏洞,特別是由于未檢查數(shù)組越界的情況(導(dǎo)致緩沖區(qū)溢出攻擊)。

未定義行為的優(yōu)點(diǎn)

C和C ++具有未定義行為,因?yàn)樗试S編譯器避免進(jìn)行大量檢查。假設(shè)一組具有較高性能數(shù)組的代碼無(wú)需關(guān)注邊界,這避免了需要復(fù)雜的優(yōu)化過(guò)程來(lái)檢查循環(huán)外的此類(lèi)條件。當(dāng)緊密綁定循環(huán)獲得C編譯器通常提供的帶符號(hào)溢出的未定義性質(zhì)的優(yōu)點(diǎn)時(shí),會(huì)將程序從30%加快到50%的速度。

我們還有另一個(gè)優(yōu)點(diǎn),因?yàn)樗试S我們將變量的值存儲(chǔ)在處理器寄存器中,并在大于源代碼中變量的時(shí)間內(nèi)進(jìn)行操作。它還有助于進(jìn)行環(huán)繞檢查,然后進(jìn)行編譯時(shí)檢查,如果不更了解C / C ++編譯器中的未定義行為,就無(wú)法進(jìn)行檢查。

希望對(duì)你有幫助~

另外如果你想更好的提升你的編程能力,學(xué)好C語(yǔ)言C++編程!彎道超車(chē),快人一步!筆者這里或許可以幫到你~

UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~

分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!

編程學(xué)習(xí)書(shū)籍分享:


編程學(xué)習(xí)視頻分享:



C/C++編程筆記:C語(yǔ)言和C++中的未定義行為,及其優(yōu)缺分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
滨海县| 衡水市| 呼和浩特市| 土默特左旗| 封丘县| 辽阳市| 武隆县| 神木县| 谢通门县| 邳州市| 利辛县| 浦东新区| 彩票| 绥江县| 宜章县| 泰来县| 屏边| 河东区| 南充市| 竹溪县| 正蓝旗| 陕西省| 柳河县| 洛南县| 电白县| 吕梁市| 黔江区| 文水县| 海伦市| 中江县| 冀州市| 阳城县| 驻马店市| 岐山县| 乐东| 肇州县| 彰武县| 卢湾区| 洪湖市| 宁河县| 松桃|