亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談C語(yǔ)言中預(yù)處理

        2016-11-18 20:14:24曾祥宇王璐瑤張珂鷺
        藝術(shù)科技 2016年9期
        關(guān)鍵詞:預(yù)處理

        曾祥宇 王璐瑤 張珂鷺

        摘 要:C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它可以作為系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫(xiě)工作系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫(xiě)不依賴(lài)計(jì)算機(jī)硬件的應(yīng)用程序。C語(yǔ)言在很多方面都可以用,不僅僅是在軟件開(kāi)發(fā)上,各類(lèi)科研都是需要用到C語(yǔ)言的。具體應(yīng)用比如我是學(xué)硬件的,單片機(jī)以及嵌入式系統(tǒng)都可以用C來(lái)開(kāi)發(fā)。C語(yǔ)言發(fā)展如此迅速,而且成為最受歡迎的語(yǔ)言之一,主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件,如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語(yǔ)言編寫(xiě)的。用C語(yǔ)言加上一些匯編語(yǔ)言子程序,就更能顯示C語(yǔ)言的優(yōu)勢(shì)了。

        關(guān)鍵詞:C語(yǔ)言;預(yù)處理;宏定義

        編譯預(yù)處理是C語(yǔ)言一個(gè)重要且特別的功能.在進(jìn)行C語(yǔ)言程序設(shè)計(jì)時(shí),靈活使用編譯預(yù)處理技術(shù)可使源程序模塊化結(jié)構(gòu)好,更加清晰和便于閱讀,并易于調(diào)試和移植。所謂預(yù)處理是指在進(jìn)行編譯的第一遍掃描(詞法掃描和語(yǔ)法分析)之前所做的工作。預(yù)處理是C語(yǔ)言的一個(gè)重要功能, 它由預(yù)處理程序負(fù)責(zé)完成。當(dāng)對(duì)一個(gè)源文件進(jìn)行編譯時(shí),系統(tǒng)把自動(dòng)引用預(yù)處理程序?qū)υ闯绦蛑械念A(yù)處理部分作處理,處理完畢自動(dòng)進(jìn)入對(duì)源程序的編譯。在嵌入式系統(tǒng)編程中不管是內(nèi)核的驅(qū)動(dòng)程序還是應(yīng)用程序的編寫(xiě),涉及大量的預(yù)處理與條件編譯,這樣做的好處主要體現(xiàn)在代碼的移植性強(qiáng)以及代碼的修改方便等方面。因此引入了預(yù)處理與條件編譯的概念。

        在C語(yǔ)言的程序中可包括各種以符號(hào)#開(kāi)頭的編譯指令,這些指令稱(chēng)為預(yù)處理命令。預(yù)處理命令屬于C語(yǔ)言編譯器,而不是C語(yǔ)言的組成部分。通過(guò)預(yù)處理命令可擴(kuò)展C語(yǔ)言程序設(shè)計(jì)的環(huán)境。

        1 預(yù)處理的工作方式

        預(yù)處理的行為是由指令控制的。這些指令是由#字符開(kāi)頭的一些命令。

        #define指令定義了一個(gè)宏——用來(lái)代表其他東西的一個(gè)命令,通常是某一個(gè)類(lèi)型的常量。預(yù)處理會(huì)通過(guò)將宏的名字和它的定義存儲(chǔ)在一起來(lái)響應(yīng)#define指令。當(dāng)這個(gè)宏在后面的程序中使用到時(shí),預(yù)處理器“擴(kuò)展”了宏,將宏替換為它所定義的值。

        #include指令告訴預(yù)處理器打開(kāi)一個(gè)特定的文件,將它的內(nèi)容作為正在編譯的文件的一部分“包含”進(jìn)來(lái)。例如,下面這行命令:

        #include。指示預(yù)處理器打開(kāi)一個(gè)名字為stdio.h的文件,并將它的內(nèi)容加到當(dāng)前的程序中。預(yù)處理器的輸入是一個(gè)C語(yǔ)言程序,程序可能包含指令。預(yù)處理器會(huì)執(zhí)行這些指令,并在處理過(guò)程中刪除這些指令。預(yù)處理器的輸出是另外一個(gè)程序:原程序的一個(gè)編輯后的版本,不再包含指令。預(yù)處理器的輸出被直接交給編譯器,編譯器檢查程序是否有錯(cuò)誤,并經(jīng)程序翻譯為目標(biāo)代碼。 C語(yǔ)言的預(yù)處理主要有三個(gè)方面的內(nèi)容:宏定義,文件包含以及條件編譯。本文主要討論前兩者。

        2 宏定義命令——#define

        使用#define命令并不是真正的定義符號(hào)常量,而是定義一個(gè)可以替換的宏。被定義為宏的標(biāo)示符稱(chēng)為“宏名”。在編譯預(yù)處理過(guò)程時(shí),對(duì)程序中所有出現(xiàn)的“宏名”,都用宏定義中的字符串去代換,這稱(chēng)為“宏代換”或“宏展開(kāi)”。

        在C語(yǔ)言中,宏分為有參數(shù)和無(wú)參數(shù)兩種。

        2.1 無(wú)參數(shù)的宏

        其定義格式如下:

        #define宏名 字符串

        在以上宏定義語(yǔ)句中,各部分的含義如下:

        第一,#:表示這是一條預(yù)處理命令(凡是以“#”開(kāi)始的均為預(yù)處理命令)。第二,define:關(guān)鍵字“define”為宏定義命令。第三,宏名:是一個(gè)標(biāo)示符,必須符合C語(yǔ)言標(biāo)示符的規(guī)定,一般以大寫(xiě)字母標(biāo)示宏名。第四,字符串:可以是常數(shù),表達(dá)式,格式串等。在前面使用的符號(hào)常量的定義就是一個(gè)無(wú)參數(shù)宏定義。

        Notice:

        預(yù)處理命令語(yǔ)句后面一般不會(huì)添加分號(hào),如果在#define最后有分號(hào),在宏替換時(shí)分號(hào)也將替換到源代碼中去。在宏名和字符串之間可以有任意一個(gè)空格。

        Eg:#define PI 3.14

        在使用宏定義時(shí),還需要注意以下幾點(diǎn):

        第一,宏定義是宏名來(lái)表示一個(gè)字符串,在宏展開(kāi)時(shí)又以該字符串取代宏名。這只是一種簡(jiǎn)單的代換,字符串中可以含任何字符,可以是常數(shù),也可以是表達(dá)式,預(yù)處理程序?qū)λ蛔魅魏螜z查。如有錯(cuò)誤,只能在編譯已被宏展開(kāi)后的源程序時(shí)發(fā)現(xiàn)。第二,宏定義必須寫(xiě)在函數(shù)之外,其作用域?yàn)楹甓x命令起到源程序結(jié)束。第三,宏名在源程序只能夠若用引號(hào)括起來(lái),則預(yù)處理程序不對(duì)其作宏替換。第四,宏定義允許嵌套,在宏定義的字符串中可以使用已經(jīng)定義的宏名。在宏展開(kāi)時(shí)由預(yù)處理程序?qū)訉犹鎿Q。第五,習(xí)慣上宏名可用大寫(xiě)字母表示,以方便與變量區(qū)別。但也允許用小寫(xiě)字母。

        2.2 帶參數(shù)的宏

        #define命令定義宏時(shí),還可以為宏設(shè)置參數(shù)。與函數(shù)中的參數(shù)類(lèi)似,在宏定于中的參數(shù)為形式參數(shù),在宏調(diào)用中的參數(shù)稱(chēng)為實(shí)際參數(shù)。對(duì)帶參數(shù)的宏,在調(diào)用中,不僅要宏展開(kāi),還要用實(shí)參去代換形參。

        帶參宏定義的一般形式為:

        #define 宏名(形參表) 字符串

        在定義帶參數(shù)的宏時(shí),宏名和形參表之間不能有空格出現(xiàn),否則,就將宏定義成為無(wú)參數(shù)形式,而導(dǎo)致程序出錯(cuò)。

        Eg:#define ABS(x) (x)<0?-(x):(x)

        以上的宏定義中,如果x的值小于0,則使用一元運(yùn)算符(-)對(duì)其取負(fù),得到正數(shù)。

        3 文件包含——include

        當(dāng)一個(gè)C語(yǔ)言程序由多個(gè)文件模塊組成時(shí),主模塊中一般包含main函數(shù)和一些當(dāng)前程序?qū)S玫暮瘮?shù)。程序從main函數(shù)開(kāi)始執(zhí)行,在執(zhí)行過(guò)程中,可調(diào)用當(dāng)前文件中的函數(shù),也可調(diào)用其他文件模塊中的函數(shù)。

        如果在模塊中要調(diào)用其他文件模塊中的函數(shù),首先必須在主模塊中聲明該函數(shù)原型。一般都是采用文件包含的方法,包含其他文件模塊的頭文件。

        文件包含中指定的文件名即可以用引號(hào)括起來(lái),也可以用尖括號(hào)括起來(lái),格式如下:

        #include<文件名>或#include“文件名”

        如果使用尖括號(hào)<>括起文件名,則編譯程序?qū)⒌紺語(yǔ)言開(kāi)發(fā)環(huán)境中設(shè)置好的 include文件中去找指定的文件。

        因?yàn)镃語(yǔ)言的標(biāo)準(zhǔn)頭文件都存放在include文件夾中,所以一般對(duì)標(biāo)準(zhǔn)頭文件采用尖括號(hào);對(duì)編程自己編寫(xiě)的文件,則使用雙引號(hào)。如果自己編寫(xiě)的文件不是存放在當(dāng)前工作文件夾,可以在#include命令后面加在路徑。

        #include命令的作用是把指定的文件模塊內(nèi)容插入到#include所在的位置,當(dāng)程序編譯鏈接時(shí),系統(tǒng)會(huì)把所有#include指定的文件鏈接生成可執(zhí)行代碼。文件包含必須以#開(kāi)頭,表示這是編譯預(yù)處理命令,行尾不能用分號(hào)結(jié)束。

        4 結(jié)語(yǔ)

        隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)全球化熱潮的不斷推進(jìn),人類(lèi)社會(huì)進(jìn)入了一個(gè)新的信息時(shí)代,網(wǎng)絡(luò)技術(shù)被廣泛應(yīng)用到經(jīng)濟(jì)發(fā)展的各個(gè)領(lǐng)域中,網(wǎng)絡(luò)技術(shù)已經(jīng)成為促進(jìn)企業(yè)快速健康發(fā)展、推動(dòng)區(qū)域經(jīng)濟(jì)增長(zhǎng)乃至使一個(gè)國(guó)家的經(jīng)濟(jì)發(fā)展邁上一個(gè)新臺(tái)階的重要推動(dòng)力。

        參考文獻(xiàn):

        [1] 王波.關(guān)于C語(yǔ)言中預(yù)處理的應(yīng)用技巧[J].計(jì)算機(jī)時(shí)代,2003(6).

        [2] 魏燦秋,蒲小瓊. C語(yǔ)言中的編譯預(yù)處理技術(shù)及其靈活運(yùn)用[J].計(jì)算機(jī)應(yīng)用,1998(6).

        作者簡(jiǎn)介:曾祥宇(1995—),男,遼寧遼陽(yáng)人,沈陽(yáng)理工大學(xué)學(xué)生。

        王璐瑤(1996—),男,山東東營(yíng)人,沈陽(yáng)理工大學(xué)學(xué)生。

        張珂鷺(1995—),男,遼寧凌源人,沈陽(yáng)理工大學(xué)學(xué)生。

        猜你喜歡
        預(yù)處理
        求解奇異線性系統(tǒng)的右預(yù)處理MINRES 方法
        基于預(yù)處理MUSIC算法的分布式陣列DOA估計(jì)
        藏紅花酸預(yù)處理對(duì)大鼠心肌缺血再灌注損傷中Caspase-3、TNF-α、NF-κB表達(dá)的影響
        中成藥(2016年4期)2016-05-17 06:08:04
        淺談PLC在預(yù)處理生產(chǎn)線自動(dòng)化改造中的應(yīng)用
        關(guān)于對(duì)稱(chēng)正定的H—矩陣的預(yù)處理方法
        絡(luò)合萃取法預(yù)處理H酸廢水
        PMU數(shù)據(jù)預(yù)處理及壓縮算法
        瑞芬太尼預(yù)處理對(duì)心肺轉(zhuǎn)流心臟缺血后損傷的保護(hù)作用
        基于自適應(yīng)預(yù)處理的改進(jìn)CPF-GMRES算法
        遠(yuǎn)端缺血預(yù)處理心肌保護(hù)作用的研究進(jìn)展
        日本大片免费观看完整视频| 午夜免费观看一区二区三区| AV无码系列一区二区三区| 亚洲中文字幕第二十三页| av免费看网站在线观看| 成人av资源在线观看| 日韩精品综合一本久道在线视频| 亚洲国产a∨无码中文777| 精品无码国产自产拍在线观看蜜| 日本阿v网站在线观看中文| 色狠狠一区二区三区香蕉蜜桃 | 99久久亚洲精品日本无码| 真人做人试看60分钟免费视频| 欧美乱妇高清无乱码在线观看| 伊人久久大香线蕉亚洲五月天| 日本大片免费观看完整视频| 亚洲欧洲无码精品ⅤA| 曰本亚洲欧洲色a在线| 久久婷婷综合激情亚洲狠狠| 国产激情综合五月久久| 爆操丝袜美女在线观看| 国产香港明星裸体xxxx视频| 欧美xxxx做受欧美| 毛片亚洲av无码精品国产午夜| 亚洲国产精品无码aaa片| 日本一区二区啪啪视频| 亚洲中文字幕第一页在线| 国产肉体XXXX裸体784大胆| 日韩人妻av不卡一区二区三区| 国产视频免费一区二区| 国产午夜免费啪视频观看| 中文乱码字幕精品高清国产| 久久日日躁夜夜躁狠狠躁| 午夜天堂精品久久久久| 国自产精品手机在线观看视频| 久久人人97超碰超国产| 亚洲日本精品一区久久精品| 国产精品天堂在线观看| 中文字幕一区二区综合| 精品国产粉嫩内射白浆内射双马尾 | 久久精品国产91精品亚洲|