色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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次閱讀
    主站蜘蛛池模板: 午夜天堂一区人妻| 婬香婬色天天视频| www黄色大片| 欧美性猛交xxxxxxxx软件| WWW夜片内射视频在观看视频| 日韩一区二区三区射精| 国产欧美一区二区三区视频| 亚洲精品无码久久久久A片空 | 欧美一区二区三区播放| 贵妇局长的蕾丝乳罩| 亚洲精品九色在线网站| 毛片在线看片| 成3d漫二区三区四区| 亚洲成人免费观看| 男人插曲女人的叫声| 国产精品免费一区二区三区视频 | 国产啪视频在线播放观看| 在线视频久久只有精品第一日韩 | 麻豆影视在线直播观看免费| 高h 纯肉文| 中文字幕在线观看亚洲视频| 色cccwww| 空姐厕所啪啪啪| 国产精品久久久久久亚洲影视| 再插深点嗯好大好爽| 色欲AV无码乱码精品国产| 久久青草免费线观最新| 国产爱豆果冻传媒在线观看视频 | 好爽胸大好深好多水| 啊…嗯啊好深男男小黄文| 亚洲裸舞 hd| 日韩亚洲视频一区二区三区| 久久久久综合一本久道| 国产精品久久久久久精品...| 97SE亚洲国产综合在线| 免费观看久久| 国产嫩草在线观看| qvod 电影| 这里只有精品在线视频| 天堂网久久| 欧美片第1页 综合|