色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言:條件編譯及預定義符號知識詳解

C語言編程學習基地 ? 來源:未知 ? 作者:李倩 ? 2018-03-31 09:20 ? 次閱讀

一.預定義符號

C標準定義了如下五個預處理符號

在文件輸入輸出以及輸出日志等場合下我們會用到這些預處理符號,比如

\+回車 : 續行符,轉義字符,后面不能加任何除回車之外的字符,否則會報錯

二.#define關鍵字

#define有兩個作用,一個是定義標識符,第二個是定義宏

1.定義標識符

不要在define定義的標識符里加分號

2.定義宏

#define機制包括一個規定,允許把參數替換到文本中,這種實現通常叫做宏或定義宏

宏定義永遠不要吝嗇括號,防止因為優先級的問題導致出現不可思議的后果 宏不能實現遞歸 宏只文本替換,并不簡化計算 字符串中的內容不會發生宏替換

3.#和 ##

編譯器會自動就兩個相鄰字符串自動連接成一個

#:把參數插入到字符串中

#a -> “a”

##可以把位于它兩邊的符號拼成一個符號

4.宏和函數對比

①宏沒有類型檢查

沒有類型檢查是宏的一大特點(但同時也是不安全的隱患),可以完成很多函數不可能做到的功能

②宏沒有函數的調用和返回等額外開銷,效率更高,

但是當邏輯復雜并且代碼量巨大時,調用和返回的開銷和運算的時間相比微乎其微,可以省略

③宏單純只是文本替換,不能進行調試,很致命

④宏可能會使代碼長度增長

⑤函數的參數如果是一個表達式,會計算出表達式的結果傳入參數

宏的參數如果是一個表達式,只會文本替換,不會進行計算

總結:各有千秋,小代碼量使用宏,大代碼量使用函數,C++中擯棄宏這一概念,使用內聯,基于優缺點,最好不要使用宏

5.帶有副作用的宏參數

不要給宏參數傳入帶有副作用的參數

6.命名約定

宏:全部大寫

函數: 不全部大寫

例外

#undef name //取消宏標識符name的定義

三.條件編譯

1.如果定義了DEBUG,語句執行,反之,不執行

2.條件編譯

3.多分支條件編譯

3.判斷是否被定義

4.嵌套指令

預處理指令可以進行嵌套

四.其它

1.頭文件的包含

2.#error “…”

遇到#error便會產生一個編譯錯誤

3.strcpy();

源字符串必須以’/0’結束,返回目標字符串地址且這個函數不管目標空間是否放得下返回的目標字符串

4.assert(條件語句)

善用斷言,頭文件為

5.鏈式反應

這次函數的返回值可以作為下一個函數的參數,達到鏈式反應的效果

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

6.常見錯誤:

編譯型錯誤

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

函數名,變量名寫錯,庫文件使用錯誤(第三方庫) 運行時錯誤

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136696
  • 編譯器
    +關注

    關注

    1

    文章

    1623

    瀏覽量

    49108

原文標題:C語言#define關鍵字,條件編譯及預定義符號知識詳解

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    幾款C語言編譯器推薦

    一些剛開始接觸C語言編譯的網友想下載一款C語言編譯器來使用,不過,網絡上有不少
    發表于 09-05 09:19 ?1w次閱讀

    C語言定義與枚舉類型知識

    定義的標識符不占內存,只是一個臨時的符號,預編譯后這個符號就不存在了。在簡單的程序使用帶參數的宏定義可完成函數調用的功能,又能減少系統開銷,
    發表于 10-11 17:34 ?1593次閱讀

    C語言預定義宏的用法和使用場景

    C語言中,預定義宏是由編譯器提供的一組特殊標識符,可以在程序中直接使用,無需進行額外的定義
    發表于 08-16 16:12 ?469次閱讀

    C語言條件編譯的妙用

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

    如何在C語言滿足多個條件下進行條件編譯

    請教一下各位。在C語言中如果滿足多個宏定義條件怎么來進行條件編譯呢?今天在寫I2
    發表于 11-08 04:35

    【每日一知識點】C語言中const詳解

    的內存地址,所以,const定義的只讀變量在程序運行過程中只有一份備份,它是全局的只讀變量,是存放在靜態區的。2、 修飾數組C語言中const還可以修飾數組,舉例如下:const int array
    發表于 03-29 10:53

    C語言的精髓——指針詳解

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

    C語言程序設計教程之編譯預處理的詳細資料說明

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

    C語言中#和##符號有什么樣的作用

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

    c語言條件編譯技巧與示例分析

    C語言條件編譯#if, #elif, #else, #endif、#ifdef, #ifndef 有些程序在調試、兼容性、平臺移植等情況下可能想要通過簡單地設置一些參數就生成一個不同
    的頭像 發表于 08-26 15:06 ?2740次閱讀

    C語言條件編譯語句and單片機DMA的介紹

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

    C語言關于變量定義未使用編譯警告warring

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

    C語言條件編譯詳解

    —般情況下,C語言源程序中的每一行代碼.都要參加編譯。但有時候出于對程序代碼優化的考慮,希望只對其中一部分內容進行編譯。此時就需要在程序中加上條件
    的頭像 發表于 04-14 13:12 ?3092次閱讀

    關于C語言知識分享

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

    c語言定義可以嵌套嗎?

    c語言定義可以嵌套嗎? C語言定義可以嵌套,也就是一個宏
    的頭像 發表于 09-04 17:38 ?3172次閱讀
    主站蜘蛛池模板: 伦理 电影在线观看百度影音| 吉吉影音先锋av资源网| 琪琪SEE色原网色原网站18| xxnx18日本| 亚洲成在人线视频| 久久婷婷五月免费综合色啪| 99久久亚洲| 午夜在线播放免费人成无| 天天久久狠狠色综合| 久久久WWW免费人成精品| abp-146| 小xav导航| 暖暖 免费 高清 日本在线| 吃寂寞寡妇的奶| 孕妇bbwbbwbbwbbw超清| 日本一卡2卡3卡四卡精品网站| 国产精品一区二区激情| AV多人爱爱XXx| 一道精品视频一区二区三区| 日本吃孕妇奶水免费观看| 久久久久亚洲日日精品| 国产精品无码中文在线AV| 9420高清完整版在线电影免费观看| 午夜精品久久久久久久爽牛战| 蜜芽在线播放免费人成日韩视频 | 国产69精品久久久久妇女| 在线观看免费毛片| 性色AV一区二区三区咪爱四虎| 欧美成人无码A区在线观看免费| 好吊日视频在线| 国产午夜亚洲精品理论片八戒 | 久久免费精品视频| 国自产拍 高清精品| 国产精品视频国产永久视频| 成片免费观看视频大全| 99欧美精品| 99久久久无码国产精品不卡按摩| 一个人的视频全免费在线观看www| 性直播免费| 亚洲 日韩经典 中文字幕| 偷偷鲁青春草原视频|