在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言:條件編譯及預(yù)定義符號(hào)知識(shí)詳解

C語(yǔ)言編程學(xué)習(xí)基地 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-03-31 09:20 ? 次閱讀

一.預(yù)定義符號(hào)

C標(biāo)準(zhǔn)定義了如下五個(gè)預(yù)處理符號(hào)

在文件輸入輸出以及輸出日志等場(chǎng)合下我們會(huì)用到這些預(yù)處理符號(hào),比如

\+回車(chē) : 續(xù)行符,轉(zhuǎn)義字符,后面不能加任何除回車(chē)之外的字符,否則會(huì)報(bào)錯(cuò)

二.#define關(guān)鍵字

#define有兩個(gè)作用,一個(gè)是定義標(biāo)識(shí)符,第二個(gè)是定義宏

1.定義標(biāo)識(shí)符

不要在define定義的標(biāo)識(shí)符里加分號(hào)

2.定義宏

#define機(jī)制包括一個(gè)規(guī)定,允許把參數(shù)替換到文本中,這種實(shí)現(xiàn)通常叫做宏或定義宏

宏定義永遠(yuǎn)不要吝嗇括號(hào),防止因?yàn)閮?yōu)先級(jí)的問(wèn)題導(dǎo)致出現(xiàn)不可思議的后果 宏不能實(shí)現(xiàn)遞歸 宏只文本替換,并不簡(jiǎn)化計(jì)算 字符串中的內(nèi)容不會(huì)發(fā)生宏替換

3.#和 ##

編譯器會(huì)自動(dòng)就兩個(gè)相鄰字符串自動(dòng)連接成一個(gè)

#:把參數(shù)插入到字符串中

#a -> “a”

##可以把位于它兩邊的符號(hào)拼成一個(gè)符號(hào)

4.宏和函數(shù)對(duì)比

①宏沒(méi)有類(lèi)型檢查

沒(méi)有類(lèi)型檢查是宏的一大特點(diǎn)(但同時(shí)也是不安全的隱患),可以完成很多函數(shù)不可能做到的功能

②宏沒(méi)有函數(shù)的調(diào)用和返回等額外開(kāi)銷(xiāo),效率更高,

但是當(dāng)邏輯復(fù)雜并且代碼量巨大時(shí),調(diào)用和返回的開(kāi)銷(xiāo)和運(yùn)算的時(shí)間相比微乎其微,可以省略

③宏單純只是文本替換,不能進(jìn)行調(diào)試,很致命

④宏可能會(huì)使代碼長(zhǎng)度增長(zhǎng)

⑤函數(shù)的參數(shù)如果是一個(gè)表達(dá)式,會(huì)計(jì)算出表達(dá)式的結(jié)果傳入?yún)?shù)

宏的參數(shù)如果是一個(gè)表達(dá)式,只會(huì)文本替換,不會(huì)進(jìn)行計(jì)算

總結(jié):各有千秋,小代碼量使用宏,大代碼量使用函數(shù),C++中擯棄宏這一概念,使用內(nèi)聯(lián),基于優(yōu)缺點(diǎn),最好不要使用宏

5.帶有副作用的宏參數(shù)

不要給宏參數(shù)傳入帶有副作用的參數(shù)

6.命名約定

宏:全部大寫(xiě)

函數(shù): 不全部大寫(xiě)

例外

#undef name //取消宏標(biāo)識(shí)符name的定義

三.條件編譯

1.如果定義了DEBUG,語(yǔ)句執(zhí)行,反之,不執(zhí)行

2.條件編譯

3.多分支條件編譯

3.判斷是否被定義

4.嵌套指令

預(yù)處理指令可以進(jìn)行嵌套

四.其它

1.頭文件的包含

2.#error “…”

遇到#error便會(huì)產(chǎn)生一個(gè)編譯錯(cuò)誤

3.strcpy();

源字符串必須以’/0’結(jié)束,返回目標(biāo)字符串地址且這個(gè)函數(shù)不管目標(biāo)空間是否放得下返回的目標(biāo)字符串

4.assert(條件語(yǔ)句)

善用斷言,頭文件為

5.鏈?zhǔn)椒磻?yīng)

這次函數(shù)的返回值可以作為下一個(gè)函數(shù)的參數(shù),達(dá)到鏈?zhǔn)椒磻?yīng)的效果

printf(“%d\n”,strlen(strcpy(p,”hello world!”)));

6.常見(jiàn)錯(cuò)誤:

編譯型錯(cuò)誤

直接看編譯器錯(cuò)誤提示信息即可 鏈接型錯(cuò)誤

函數(shù)名,變量名寫(xiě)錯(cuò),庫(kù)文件使用錯(cuò)誤(第三方庫(kù)) 運(yùn)行時(shí)錯(cuò)誤

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137734
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1642

    瀏覽量

    49289

原文標(biāo)題:C語(yǔ)言#define關(guān)鍵字,條件編譯及預(yù)定義符號(hào)知識(shí)詳解

文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    幾款C語(yǔ)言編譯器推薦

    一些剛開(kāi)始接觸C語(yǔ)言編譯的網(wǎng)友想下載一款C語(yǔ)言編譯器來(lái)使用,不過(guò),網(wǎng)絡(luò)上有不少
    發(fā)表于 09-05 09:19 ?1.1w次閱讀

    C語(yǔ)言定義與枚舉類(lèi)型知識(shí)

    定義的標(biāo)識(shí)符不占內(nèi)存,只是一個(gè)臨時(shí)的符號(hào),預(yù)編譯后這個(gè)符號(hào)就不存在了。在簡(jiǎn)單的程序使用帶參數(shù)的宏定義可完成函數(shù)調(diào)用的功能,又能減少系統(tǒng)開(kāi)銷(xiāo),
    發(fā)表于 10-11 17:34 ?1649次閱讀

    C語(yǔ)言預(yù)定義宏的用法和使用場(chǎng)景

    C語(yǔ)言中,預(yù)定義宏是由編譯器提供的一組特殊標(biāo)識(shí)符,可以在程序中直接使用,無(wú)需進(jìn)行額外的定義
    發(fā)表于 08-16 16:12 ?541次閱讀

    C語(yǔ)言條件編譯的妙用

    線。我對(duì)學(xué)習(xí)總結(jié)出一句話“壓力不是有人努力,而是比你牛X N倍的人依然在努力” C語(yǔ)言條件編譯的應(yīng)用 一般情況下,源程序中所有的行都要參加編譯
    發(fā)表于 07-19 01:53

    如何在C語(yǔ)言滿足多個(gè)條件下進(jìn)行條件編譯

    請(qǐng)教一下各位。在C語(yǔ)言中如果滿足多個(gè)宏定義條件怎么來(lái)進(jìn)行條件編譯呢?今天在寫(xiě)I2
    發(fā)表于 11-08 04:35

    【每日一知識(shí)點(diǎn)】C語(yǔ)言中const詳解

    的內(nèi)存地址,所以,const定義的只讀變量在程序運(yùn)行過(guò)程中只有一份備份,它是全局的只讀變量,是存放在靜態(tài)區(qū)的。2、 修飾數(shù)組C語(yǔ)言中const還可以修飾數(shù)組,舉例如下:const int array
    發(fā)表于 03-29 10:53

    C語(yǔ)言的精髓——指針詳解

    C語(yǔ)言的精髓——指針詳解
    發(fā)表于 11-30 14:43 ?17次下載

    C語(yǔ)言程序設(shè)計(jì)教程之編譯預(yù)處理的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語(yǔ)言程序設(shè)計(jì)教程之編譯預(yù)處理的詳細(xì)資料說(shuō)明主要內(nèi)容包括了:1.宏定義 2.文件包含 3.條件
    發(fā)表于 01-08 14:19 ?2次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>程序設(shè)計(jì)教程之<b class='flag-5'>編譯</b>預(yù)處理的詳細(xì)資料說(shuō)明

    C語(yǔ)言中#和##符號(hào)有什么樣的作用

    #endif定義的無(wú)用代碼過(guò)濾掉; 將代碼中沒(méi)用的注釋部分刪除等。 從而生成一個(gè)沒(méi)有宏定義、沒(méi)有條件編譯指令、沒(méi)有特殊符號(hào)的輸
    的頭像 發(fā)表于 02-24 10:56 ?4.6w次閱讀

    c語(yǔ)言條件編譯技巧與示例分析

    C語(yǔ)言條件編譯#if, #elif, #else, #endif、#ifdef, #ifndef 有些程序在調(diào)試、兼容性、平臺(tái)移植等情況下可能想要通過(guò)簡(jiǎn)單地設(shè)置一些參數(shù)就生成一個(gè)不同
    的頭像 發(fā)表于 08-26 15:06 ?2804次閱讀

    C語(yǔ)言條件編譯語(yǔ)句and單片機(jī)DMA的介紹

    C語(yǔ)言條件編譯語(yǔ)句and單片機(jī)DMA的介紹C語(yǔ)言條件
    發(fā)表于 11-29 10:36 ?3次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>條件</b><b class='flag-5'>編譯</b>語(yǔ)句and單片機(jī)DMA的介紹

    C語(yǔ)言關(guān)于變量定義未使用編譯警告warring

    C語(yǔ)言關(guān)于變量定義未使用編譯警告warring1.警告warring的產(chǎn)生1.1具體警告warring1.2解決方案1.2.1利用attribute 機(jī)制1.2.2利用void關(guān)鍵字2
    發(fā)表于 11-29 18:21 ?4次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>關(guān)于變量<b class='flag-5'>定義</b>未使用<b class='flag-5'>編譯</b>警告warring

    C語(yǔ)言條件編譯詳解

    —般情況下,C語(yǔ)言源程序中的每一行代碼.都要參加編譯。但有時(shí)候出于對(duì)程序代碼優(yōu)化的考慮,希望只對(duì)其中一部分內(nèi)容進(jìn)行編譯。此時(shí)就需要在程序中加上條件
    的頭像 發(fā)表于 04-14 13:12 ?3146次閱讀

    關(guān)于C語(yǔ)言知識(shí)分享

    C語(yǔ)言是高級(jí)語(yǔ)言,由很多適合人閱讀的英文字母和符號(hào)組成。而CPU只認(rèn)得O和1組成的指令(稱(chēng)為“機(jī)器碼”)。所以,我們必須要把C
    發(fā)表于 08-26 17:20 ?2次下載

    c語(yǔ)言定義可以嵌套嗎?

    c語(yǔ)言定義可以嵌套嗎? C語(yǔ)言定義可以嵌套,也就是一個(gè)宏
    的頭像 發(fā)表于 09-04 17:38 ?3281次閱讀
    主站蜘蛛池模板: 天堂在线免费视频 | 老汉影视永久免费视频 | 国产aaaaaaa毛片 | 欧美人成绝费网站色www吃脚 | 久久青青草原精品老司机 | 亚洲一区高清 | 开心激情小说 | 国产高清美女一级a毛片 | 么公的好大好硬好深好爽视频 | 免费日韩一级片 | 亚洲综合在线一区 | 老师我好爽再深一点好大 | 色wwwwww | 天天干天天干天天干 | 在线观看日本免费不卡 | 美女扒开腿让男人桶尿口 | 色老头·com 色老头成人免费综合视频 色老头久久久久 | 俄罗斯美女在线观看一区 | 欧美黄色成人 | www亚洲一区 | 久久国产午夜精品理论片34页 | 天天摸天天舔天天操 | 国产亚洲精品aa在线观看 | 日韩成人在线影院 | 一区二区三区在线播放 | 国产精品久久久亚洲 | 色妇网 | 一区二区免费在线观看 | 男女午夜免费视频 | 欧美tube6最新69 | 人人射人人澡 | 四虎影院最新网址 | 在线观看免费xx高清视频 | 亚洲一区在线免费观看 | 美女黄网站人色视频免费国产 | 国产吧在线视频 | 午夜亚洲国产 | 亚洲一区二区三区在线网站 | 毛片站 | 欲色影视香色天天影视来 | 男人的天堂免费视频 |