黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁考試吧論壇Exam8視線考試商城網絡課程模擬考試考友錄實用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓 自學考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托福考試
托業考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認證
水平考試
Java認證
職稱計算機 微軟認證 思科認證 Oracle認證 Linux認證
公 務 員
導游考試
物 流 師
出版資格
單 證 員
報 關 員
外 銷 員
價格鑒證
網絡編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業培訓
社會工作者
銀行從業
教師資格
營養師
保險從業
普 通 話
證券從業
跟 單 員
秘書資格
電子商務
期貨考試
國際商務
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業水平
衛生資格 執業醫師 執業藥師 執業護士
會計從業資格
基金從業資格
統計從業資格
經濟師
精算師
統計師
會計職稱
法律顧問
ACCA考試
注冊會計師
資產評估師
審計師考試
高級會計師
注冊稅務師
國際內審師
理財規劃師
美國注冊會計師
一級建造師
安全工程師
設備監理師
公路監理師
公路造價師
二級建造師
招標師考試
物業管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質量工程師
巖土工程師
造價員考試
注冊計量師
環保工程師
化工工程師
咨詢工程師
結構工程師
城市規劃師
材料員考試
監理工程師
房地產估價
土地估價師
安全評價師
房地產經紀人
投資項目管理師
環境影響評價師
土地登記代理人
繽紛校園 實用文檔 英語學習 作文大全 求職招聘 論文下載 訪談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專項輔導
軟件水平考試交流互動
軟件水平考試交流互動
您現在的位置: 考試吧 > 軟件水平考試 > 復習資料 > 程序員資料 > 正文

C語言初學者入門知識之預處理

  文件包含

  文件包含是C預處理程序的另一個重要功能。文件包含命令行的一般形式為: #include“文件名” 在前面我們已多次用此命令包含過庫函數的頭文件。例如:

  #include"stdio.h"

  #include"math.h"

  文件包含命令的功能是把指定的文件插入該命令行位置取代該命令行, 從而把指定的文件和當前的源程序文件連成一個源文件。在程序設計中,文件包含是很有用的。 一個大的程序可以分為多個模塊,由多個程序員分別編程。 有些公用的符號常量或宏定義等可單獨組成一個文件, 在其它文件的開頭用包含命令包含該文件即可使用。這樣,可避免在每個文件開頭都去書寫那些公用量, 從而節省時間,并減少出錯。

  對文件包含命令還要說明以下幾點:

  1. 包含命令中的文件名可以用雙引號括起來,也可以用尖括號括起來。例如以下寫法都是允許的: #include"stdio.h" #include 但是這兩種形式是有區別的:使用尖括號表示在包含文件目錄中去查找(包含目錄是由用戶在設置環境時設置的), 而不在源文件目錄去查找; 使用雙引號則表示首先在當前的源文件目錄中查找,若未找到才到包含目錄中去查找。 用戶編程時可根據自己文件所在的目錄來選擇某一種命令形式。

  2. 一個include命令只能指定一個被包含文件, 若有多個文件要包含,則需用多個include命令。

  3. 文件包含允許嵌套,即在一個被包含的文件中又可以包含另一個文件。

  條件編譯

  預處理程序提供了條件編譯的功能。 可以按不同的條件去編譯不同的程序部分,因而產生不同的目標代碼文件。 這對于程序的移植和調試是很有用的。 條件編譯有三種形式,下面分別介紹:

  1. 第一種形式:

  #ifdef 標識符

  程序段1

  #else

  程序段2

  #endif

  它的功能是,如果標識符已被 #define命令定義過則對程序段1進行編譯;否則對程序段2進行編譯。如果沒有程序段2(它為空),本格式中的#else可以沒有, 即可以寫為:

  #ifdef 標識符

  程序段 #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行插入了條件編譯預處理命令, 因此要根據NUM是否被定義過來決定編譯那一個printf語句。而在程序的第一行已對NUM作過宏定義,因此應對第一個printf語句作編譯故運行結果是輸出了學號和成績。在程序的第一行宏定義中,定義NUM表示字符串OK,其實也可以為任何字符串,甚至不給出任何字符串,寫為: #define NUM 也具有同樣的意義。 只有取消程序的第一行才會去編譯第二個printf語句。讀者可上機試作。

  2. 第二種形式:

  #ifndef 標識符

  程序段1

  #else

  程序段2

  #endif

  與第一種形式的區別是將“ifdef”改為“ifndef”。它的功能是,如果標識符未被#define命令定義過則對程序段1進行編譯, 否則對程序段2進行編譯。這與第一種形式的功能正相反。

  3. 第三種形式:

  #if 常量表達式

  程序段1

  #else

  程序段2

  #endif

  它的功能是,如常量表達式的值為真(非0),則對程序段1 進行編譯,否則對程序段2進行編譯。因此可以使程序在不同條件下,完成不同的功能

  #define R 1

  main(){

  float c,r,s;

  printf ("input a number: ");

  scanf("%f",&c);

  #if R

  r=3.14159*c*c;

  printf("area of round is: %f\n",r);

  #else

  s=c*c;

  printf("area of square is: %f\n",s);

  #endif

  }

  本例中采用了第三種形式的條件編譯。在程序第一行宏定義中,定義R為1,因此在條件編譯時,常量表達式的值為真, 故計算并輸出圓面積。上面介紹的條件編譯當然也可以用條件語句來實現。 但是用條件語句將會對整個源程序進行編譯,生成的目標代碼程序很長,而采用條件編譯,則根據條件只編譯其中的程序段1或程序段2, 生成的目標程序較短。如果條件選擇的程序段很長, 采用條件編譯的方法是十分必要的。

上一頁  1 2 3 4  下一頁

  相關推薦:

  2012年軟考系統分析師考試60天完美復習計劃

  2012年軟件水平考試網絡工程師章節筆記講義匯總

  2012年上半年軟件水平考試成績查詢匯總

文章搜索
軟件水平考試欄目導航
版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
主站蜘蛛池模板: 国产欧美日韩不卡 | 国产视频一区二区在线观看 | 在线国产一区二区三区 | 天天舔天天操 | 久草人体 | 久久厕所精品国产精品亚洲 | a视频在线 | 国产高清精品久久久久久久 | 国产免费成人在线视频 | 男人爱看的视频网站免费 | 国产成人a∨麻豆精品 | 久久精品亚洲欧美日韩久久 | 在线播放国产不卡免费视频 | 在线观看国产日韩 | 香蕉在线精品亚洲第一区 | 国产精品手机网站 | 午夜久草 | 精品国产一二三区 | 老司机午夜精品视频你懂的 | 夜夜性日日交xxx性视频 | 成人在线观看一区 | 在线观看国产精品日本不卡网 | 视频区小说区图片区激情 | 亚洲欧美综合乱码精品成人网 | 91在线免费视频 | 最近的中文字幕视频完整 | 伊人久久大杳蕉综合大象 | 日韩精品国产精品 | 一区二区不卡 | 成人男女网18免费视频 | 波多野结衣中文字幕2022免费 | 国产日韩精品欧美一区喷水 | 亚洲福利区| 视频xxx| 亚洲人成网站在线观看播放动漫 | 欧美成成人免费 | 久久久久avav久久久 | 欧美怡红院免费的视频 | 有码视频在线观看 | 亚洲在成人网在线看 | 国产精品日韩欧美一区二区 |