C++中避免使用宏定義常量或函數(shù)的原因是什么,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括尋甸網(wǎng)站建設(shè)、尋甸網(wǎng)站制作、尋甸網(wǎng)頁制作以及尋甸網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,尋甸網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到尋甸省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
ES.31:不要用宏定義常量或函數(shù)
Macros are a major source of bugs. Macros don't obey the usual scope and type rules. Macros don't obey the usual rules for argument passing. Macros ensure that the human reader sees something different from what the compiler sees. Macros complicate tool building.
宏是錯(cuò)誤的主要來源之一。宏不會(huì)遵守通常的范圍和類型準(zhǔn)則。宏也不會(huì)遵守參數(shù)傳遞準(zhǔn)則。宏為人提供一個(gè)和編譯器視角有些不同的視角。宏讓工具構(gòu)建變得更復(fù)雜。
Example, bad(反面示例)
#define PI 3.14#define SQUARE(a, b) (a * b)
Even if we hadn't left a well-known bug in SQUARE there are much better behaved alternatives; for example:
雖然SQUARE定義中不存在已知的錯(cuò)誤,但確實(shí)存在可以動(dòng)作更好的其他選項(xiàng)。
constexpr double pi = 3.14;
template<typename T> T square(T a, T b) { return a * b; }
關(guān)于C++中避免使用宏定義常量或函數(shù)的原因是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
當(dāng)前文章:C++中避免使用宏定義常量或函數(shù)?的原因是什么
當(dāng)前地址:http://www.rwnh.cn/article44/psjche.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站排名、App開發(fā)、網(wǎng)站收錄
聲明:本網(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)