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

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

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

3天內不再提示

C語言預處理指令及分類

strongerHuang ? 來源:嵌入式專欄 ? 作者:strongerHuang ? 2020-11-29 10:14 ? 次閱讀

C語言編程過程中,經常會用到如 #include、#define 等指令,這些標識開頭的指令被稱為預處理指令,預處理指令由預處理程序(預處理器)操作。

相比其他編程語言,C/C++ 語言更依賴預處理器,故在閱讀或開發 C/C++ 程序過程中,可能會接觸大量的預處理指令。

1

預處理指令及分類C/C++ 程序中的源代碼中包含以 # 開頭的各種編譯指令,這些指令稱為預處理指令。預處理指令不屬于 C/C++ 語言的語法,但在一定意義上可以說預處理擴展了 C/C++。

ANSI C 定義的預處理指令主要包括:文件包含、宏定義、條件編譯和特殊控制等 4 類。

1. 文件包含

文件包含:#include 是 C 程序設計中最常用的預處理指令。例如,幾乎每個需要輸入輸出的 C 程序,都要包含 #include《stdio.h》 指令,表示把 stdio.h 文件中的全部內容,替換該行指令。

包含文件的格式有 #include 后面跟尖括號 《》 和雙引號 “” 之分。兩者的主要差別是搜索路徑的不同。

尖括號形式:如 #include《math.h》,預處理器直接到系統目錄對應文件中搜索 math.h 文件,搜索不到則報錯。系統提供的頭文件一般采用該包含方式,而自定義的頭文件不能采用該方式。

雙引號形式:如 #include“cal.h”,首先到當前工作目錄下查找該文件,如果沒有找到,再到系統目錄下查找。包含自定義的頭文件,一般采用該方式。雖然系統頭文件采用此方式也正確,但浪費了不必要的搜索時間,故系統頭文件不建議采用該包含方式。

2.宏定義

宏定義:包括定義宏 #define 和宏刪除 #undef。

以 #define 開頭,可以定義無參數宏和帶參的宏定義。程序中經常使用無參宏定義來定義符號常量。例如:

#define PI 3.1416 //定義無符號宏,或定義符號常量 PI

#undef 表示刪除已定義的宏,例如:

#undef PI //刪除前面該宏的定義

3.條件編譯

條件編譯:主要是為了有選擇性地執行相應操作,防止宏替換內容(如文件等)的重復包含。

常見的條件編譯指令有 #if、#elif、#else、#endif、#ifdef、#ifndef。

4.特殊控制

特殊控制:ANSI C 還定義了特殊作用的預處理指令,如 #error、#pragma。

#error:使預處理器輸出指定的錯誤信息,通常用于調試程序。

#pragma:是功能比較豐富且靈活的指令,可以有不同的參數選擇,從而完成相應的特 定功能操作。調用格式為:#pragma 參數。

其中,參數可以有 message 類型、code_seg、once、warning、pack 等。通常使用如下的預處理指令來設定內存以 n 字節對齊方式。

#pragma pack (n) //其中 n 稱為對齊系數,取 1、2、4、8.。.

2

預處理器及其工作原理

C預處理器(C Pre-Processor)也常簡寫為 CPP,是一個與 C 編譯器獨立的小程序,預編譯器并不理解 C 語言語法,它僅是在程序源文件被編譯之前,實現文本替換的功能。

目前預編譯器巳集成到集成開發環境中,一般并沒有執行預處理操作的選項,而包含在了編譯操作中,即選擇編譯操作時,首先調用的是預處理器,處理源程序文件中的預處理指令,預處理器的輸出再送給編譯器,編譯器從 C 語言語法角度檢查程序是否正確,如果正確,則生成目標代碼文件或機器指令文件。

C 預處理器及 C 編譯器的執行順序及輸入輸出文件類型,如圖所示:

責任編輯:lq

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

    關注

    180

    文章

    7608

    瀏覽量

    137111
  • C++
    C++
    +關注

    關注

    22

    文章

    2111

    瀏覽量

    73704
  • 預處理
    +關注

    關注

    0

    文章

    33

    瀏覽量

    10508

原文標題:C語言預處理命令分類和工作原理

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Minitab 數據清理與預處理技巧

    Minitab是一款功能強大的統計分析和質量管理軟件,在數據分析過程中,數據清理與預處理是至關重要的環節。以下是一些在Minitab中進行數據清理與預處理的技巧: 一、數據導入與格式調整 導入數據
    的頭像 發表于 12-02 16:06 ?408次閱讀

    C語言關鍵字分別發生在哪個階段

    以下C語言關鍵字,分別發生在哪個階段? 第一個,define。 首先得糾正一下,define 并不是C語言里面的關鍵字,即使加了井號,也不是。 define 屬于
    的頭像 發表于 11-24 10:31 ?198次閱讀

    C55x CSL音頻預處理

    電子發燒友網站提供《C55x CSL音頻預處理.pdf》資料免費下載
    發表于 09-19 11:30 ?0次下載
    <b class='flag-5'>C</b>55x CSL音頻<b class='flag-5'>預處理</b>

    hex文件如何查看原c語言代碼

    處理器可以直接執行的指令,而 C 語言代碼則是人類可讀的高級編程語言代碼。 然而,如果你想要從 .hex 文件中獲取一些有用的信息或者對程
    的頭像 發表于 09-02 10:37 ?2500次閱讀

    圖像識別技術包括自然語言處理

    計算機視覺技術對圖像進行處理、分析和理解,從而實現對圖像中的目標、場景、行為等信息的識別和理解。圖像識別技術包括圖像預處理、特征提取、分類器設計、模型訓練等多個環節。 1.2 自然語言
    的頭像 發表于 07-16 10:54 ?879次閱讀

    機器學習中的數據預處理與特征工程

    在機器學習的整個流程中,數據預處理與特征工程是兩個至關重要的步驟。它們直接決定了模型的輸入質量,進而影響模型的訓練效果和泛化能力。本文將從數據預處理和特征工程的基本概念出發,詳細探討這兩個步驟的具體內容、方法及其在機器學習中的應用。
    的頭像 發表于 07-09 15:57 ?486次閱讀

    nlp自然語言處理模型怎么做

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領域的一個重要分支,它涉及到計算機對人類語言的理解和生成。隨著深度學習技術的發展,NLP領域取得了顯著
    的頭像 發表于 07-05 09:59 ?662次閱讀

    信號的預處理包括哪些環節

    信號預處理是信號處理的一個重要環節,它對信號進行一系列的操作,以便于后續的分析和處理。信號預處理的目的是提高信號的質量,減少噪聲,保留有用的信息,以及滿足后續
    的頭像 發表于 06-03 10:35 ?3271次閱讀

    一招掌握C語言代碼如何變成bin文件?

    的第一步。預處理器采取預處理指令,處理諸如宏定義(#define)、條件編譯(#ifdef,#ifndef,#endif)等。此步驟的輸出是擴展的源代碼,包含所有頭
    的頭像 發表于 04-13 08:10 ?3324次閱讀
    一招掌握<b class='flag-5'>C</b><b class='flag-5'>語言</b>代碼如何變成bin文件?

    C預處理器及其工作原理

    C預處理器(C Pre-Processor)也常簡寫為 CPP,是一個與 C 編譯器獨立的小程序,預編譯器并不理解 C
    的頭像 發表于 03-12 14:14 ?662次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>預處理</b>器及其工作原理

    C語言#define的應用

    C/C++ 編程語言中,當程序被編譯時,被發送到編譯器,編譯器將程序轉換為機器語言,然后完成編譯并執行該程序。預處理器也稱為宏
    發表于 03-06 11:29 ?393次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>#define的應用

    C語言中的預處理

    所有的預處理器命令都是以井號(#)開頭。它必須是第一個非空字符,為了增強可讀性,預處理指令應從第一列開始。
    發表于 03-01 12:16 ?950次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的<b class='flag-5'>預處理</b>器

    介紹C語言中錯誤處理和異常處理的一些常用的方法和策略

    C語言是一種低級的、靜態的、結構化的編程語言,它沒有提供像C++或Java等高級語言中的異常處理
    的頭像 發表于 02-28 14:25 ?642次閱讀

    C語言中的錯誤處理機制解析

    C 語言不提供對錯誤處理的直接支持,但是作為一種系統編程語言,它以返回值的形式允許您訪問底層數據。
    的頭像 發表于 02-26 11:19 ?527次閱讀

    C語言中的頭文件

    #include 指令會指示 C 預處理器瀏覽指定的文件作為輸入。預處理器的輸出包含了已經生成的輸出,被引用文件生成的輸出以及 #include
    發表于 02-23 14:06 ?479次閱讀
    主站蜘蛛池模板: 99国产精品综合AV无码| 久久青草热热在线精品| 欧美亚洲精品午夜福利AV| 97伦理97伦理2018最新| 美女在线永久免费网站| WWW国产精品内射熟女| 日本久久精品免视看国产成人| 动漫美女被h动态图| 亚洲成人免费在线| 久久久久久久伊人电影| JK白丝校花爽到娇喘视频| 日日摸夜夜嗷嗷叫日日拍| 国产在线观看免费| 99国产精品| 小寡妇好紧进去了好大看视频 | 色即是空 BT| 精品久久香蕉国产线看观看麻豆| 99热在线视频| 亚洲国产欧美国产综合在线| 恋夜影院支持安卓视频美女| 国产超嫩一线天在线播放| 伊人成色综合人网| 日本久久和电影| 久久精品嫩草影院免费看| 高清 国产 在线 亚洲| 在线 | 果冻国产传媒61国产免费| 日本无码色哟哟婷婷最新网站| 九九在线中文字幕无码| 成人公开免费视频| 樱桃bt在线www| 无人影院在线播放| 欧美亚洲国产激情一区二区| 黑人操日本女人| 国产成人精品视频免费大全| 69xx欧美| 一边吃奶一边啪啪真舒服| 色在线视频亚洲欧美| 麻豆国产96在线日韩麻豆| 果冻传媒色AV国产播放| 大香伊蕉在人线国产最新| 2022国产91精品久久久久久|