在线现看午夜福利片|女人16久久免费视频|鲁丝片一区鲁丝片二区鲁丝|一区二区三区欧美在线

  1. 
    
    <b id="glvx9"></b>
        1. <blockquote id="glvx9"><meter id="glvx9"></meter></blockquote>
            首頁(yè) 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
            2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
            MPA考試 | 中科院
            四六級(jí) | 職稱英語(yǔ) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
            新概念英語(yǔ) | 成人英語(yǔ)三級(jí) | 申碩英語(yǔ) | 攻碩英語(yǔ) | 職稱日語(yǔ) | 日語(yǔ)學(xué)習(xí) | 法語(yǔ) | 德語(yǔ) | 韓語(yǔ)
            計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
            華為認(rèn)證 | Java認(rèn)證
            公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問(wèn) | 導(dǎo)游資格
            報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國(guó)際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
            人力資源 | 管理咨詢師考試 | 秘書(shū)資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
            駕駛員 | 網(wǎng)絡(luò)編輯
            衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
            會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
            注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國(guó)際內(nèi)審師
            一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
            質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
            設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
            城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
            繽紛校園 | 實(shí)用文檔 | 英語(yǔ)學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

            二級(jí)C輔導(dǎo)教程及考點(diǎn)分析:第九章 預(yù)處理

                5. 帶參的宏和帶參函數(shù)很相似,但有本質(zhì)上的不同,除上面已談到的各點(diǎn)外,把同一表達(dá)式用函數(shù)處理與用宏處理兩者的結(jié)果有可能是不同的。main(){
                int i=1;
                while(i<=5)
                printf("%d\n",SQ(i++));
                }
                SQ(int y)
                {
                return((y)*(y));
                }#define SQ(y) ((y)*(y))
                main(){
                int i=1;
                while(i<=5)
                printf("%d\n",SQ(i++));
                } 
                在上例中函數(shù)名為SQ,形參為Y,函數(shù)體表達(dá)式為((y)*(y))。在例9.6中宏名為SQ,形參也為y,字符串表達(dá)式為(y)*(y))。 兩例是相同的。例9.6的函數(shù)調(diào)用為SQ(i++),例9.7的宏調(diào)用為SQ(i++),實(shí)參也是相同的。從輸出結(jié)果來(lái)看,卻大不相同。分析如下:在例9.6中,函數(shù)調(diào)用是把實(shí)參i值傳給形參y后自增1。 然后輸出函數(shù)值。因而要循環(huán)5次。輸出1~5的平方值。而在例9.7中宏調(diào)用時(shí),只作代換。SQ(i++)被代換為((i++)*(i++))。在第一次循環(huán)時(shí),由于i等于1,其計(jì)算過(guò)程為:表達(dá)式中前一個(gè)i初值為1,然后i自增1變?yōu)?,因此表達(dá)式中第2個(gè)i初值為2,兩相乘的結(jié)果也為2,然后i值再自增1,得3。在第二次循環(huán)時(shí),i值已有初值為3,因此表達(dá)式中前一個(gè)i為3,后一個(gè)i為4, 乘積為12,然后i再自增1變?yōu)?。進(jìn)入第三次循環(huán),由于i 值已為5,所以這將是最后一次循環(huán)。計(jì)算表達(dá)式的值為5*6等于30。i值再自增1變?yōu)?,不再滿足循環(huán)條件,停止循環(huán)。從以上分析可以看出函數(shù)調(diào)用和宏調(diào)用二者在形式上相似, 在本質(zhì)上是完全不同的。

                6. 宏定義也可用來(lái)定義多個(gè)語(yǔ)句,在宏調(diào)用時(shí),把這些語(yǔ)句又代換到源程序內(nèi)?聪旅娴睦印
                #define SSSV(s1,s2,s3,v) s1=l*w;s2=l*h;s3=w*h;v=w*l*h;
                main(){
                int l=3,w=4,h=5,sa,sb,sc,vv;
                SSSV(sa,sb,sc,vv);
                printf("sa=%d\nsb=%d\nsc=%d\nvv=%d\n",sa,sb,sc,vv);
                }
                程序第一行為宏定義,用宏名SSSV表示4個(gè)賦值語(yǔ)句,4 個(gè)形參分別為4個(gè)賦值符左部的變量。在宏調(diào)用時(shí),把4 個(gè)語(yǔ)句展開(kāi)并用實(shí)參代替形參。使計(jì)算結(jié)果送入實(shí)參之中。

                文件包含 

                文件包含是C預(yù)處理程序的另一個(gè)重要功能。文件包含命令行的一般形式為: #include"文件名" 在前面我們已多次用此命令包含過(guò)庫(kù)函數(shù)的頭文件。例如: 
                #include"stdio.h"
                #include"math.h" 
                文件包含命令的功能是把指定的文件插入該命令行位置取代該命令行, 從而把指定的文件和當(dāng)前的源程序文件連成一個(gè)源文件。在程序設(shè)計(jì)中,文件包含是很有用的。 一個(gè)大的程序可以分為多個(gè)模塊,由多個(gè)程序員分別編程。 有些公用的符號(hào)常量或宏定義等可單獨(dú)組成一個(gè)文件, 在其它文件的開(kāi)頭用包含命令包含該文件即可使用。這樣,可避免在每個(gè)文件開(kāi)頭都去書(shū)寫(xiě)那些公用量, 從而節(jié)省時(shí)間,并減少出錯(cuò)。

                對(duì)文件包含命令還要說(shuō)明以下幾點(diǎn):
                1. 包含命令中的文件名可以用雙引號(hào)括起來(lái),也可以用尖括號(hào)括起來(lái)。例如以下寫(xiě)法都是允許的: #include"stdio.h" #include 但是這兩種形式是有區(qū)別的:使用尖括號(hào)表示在包含文件目錄中去查找(包含目錄是由用戶在設(shè)置環(huán)境時(shí)設(shè)置的), 而不在源文件目錄去查找; 使用雙引號(hào)則表示首先在當(dāng)前的源文件目錄中查找,若未找到才到包含目錄中去查找。 用戶編程時(shí)可根據(jù)自己文件所在的目錄來(lái)選擇某一種命令形式。

                2. 一個(gè)include命令只能指定一個(gè)被包含文件, 若有多個(gè)文件要包含,則需用多個(gè)include命令。3. 文件包含允許嵌套,即在一個(gè)被包含的文件中又可以包含另一個(gè)文件。

                條件編譯

                預(yù)處理程序提供了條件編譯的功能。 可以按不同的條件去編譯不同的程序部分,因而產(chǎn)生不同的目標(biāo)代碼文件。 這對(duì)于程序的移植和調(diào)試是很有用的。 條件編譯有三種形式,下面分別介紹:
                1. 第一種形式: 
                #ifdef 標(biāo)識(shí)符 
                程序段1 
                #else 
                程序段2 
                #endif 
                它的功能是,如果標(biāo)識(shí)符已被 #define命令定義過(guò)則對(duì)程序段1進(jìn)行編譯;否則對(duì)程序段2進(jìn)行編譯。如果沒(méi)有程序段2(它為空),本格式中的#else可以沒(méi)有, 即可以寫(xiě)為: 
                #ifdef 標(biāo)識(shí)符 
                程序段 #endif 
                #define NUM ok
                main(){
                struct stu
                {
                int num;
                char *name;
                char sex;
                float score;
                } *ps;
                ps=(struct stu*)malloc(sizeof(struct stu));
                ps->num=102;
                ps->name="Zhang ping";
                ps->sex=’M’;
                ps->score=62.5;
                #ifdef NUM
                printf("Number=%d\nScore=%f\n",ps->num,ps->score);
                #else
                printf("Name=%s\nSex=%c\n",ps->name,ps->sex);
                #endif
                free(ps);
                } 
                由于在程序的第16行插入了條件編譯預(yù)處理命令, 因此要根據(jù)NUM是否被定義過(guò)來(lái)決定編譯那一個(gè)printf語(yǔ)句。而在程序的第一行已對(duì)NUM作過(guò)宏定義,因此應(yīng)對(duì)第一個(gè)printf語(yǔ)句作編譯故運(yùn)行結(jié)果是輸出了學(xué)號(hào)和成績(jī)。在程序的第一行宏定義中,定義NUM表示字符串OK,其實(shí)也可以為任何字符串,甚至不給出任何字符串,寫(xiě)為: #define NUM 也具有同樣的意義。 只有取消程序的第一行才會(huì)去編譯第二個(gè)printf語(yǔ)句。讀者可上機(jī)試作。

            希望與更多計(jì)算機(jī)等級(jí)考試的網(wǎng)友交流,請(qǐng)進(jìn)入計(jì)算機(jī)等級(jí)考試論壇

            更多信息請(qǐng)?jiān)L問(wèn):考試吧計(jì)算機(jī)等級(jí)考試欄目

            文章搜索
            版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。