欧美成人永久免费_欧美日本五月天_A级毛片免看在线_国产69无码,亚洲无线观看,精品人妻少妇无码视频,777无码专区,色大片免费网站大全,麻豆国产成人AV网,91视频网络,亚洲色无码自慰

當前位置:網(wǎng)站首頁 >> 作文 >> c語言 預(yù)處理 c語言的預(yù)處理功能是指優(yōu)秀

c語言 預(yù)處理 c語言的預(yù)處理功能是指優(yōu)秀

格式:DOC 上傳日期:2023-04-23 06:14:36
c語言 預(yù)處理 c語言的預(yù)處理功能是指優(yōu)秀
時間:2023-04-23 06:14:36     小編:zdfb

每個人都曾試圖在平淡的學習,、工作和生活中寫一篇文章,。寫作是培養(yǎng)人的觀察、聯(lián)想,、想象、思維和記憶的重要手段。寫范文的時候需要注意什么呢?有哪些格式需要注意呢,?接下來小編就給大家介紹一下優(yōu)秀的范文該怎么寫,我們一起來看一看吧,。

c語言 預(yù)處理 c語言的預(yù)處理功能是指篇一

c語言實習總結(jié)

推薦度:

c語言課程設(shè)計個人總結(jié)

推薦度:

c語言程序設(shè)計實驗報告

推薦度:

c語言程序設(shè)計課程設(shè)計總結(jié)

推薦度:

c語言程序設(shè)計心得體會

推薦度:

相關(guān)推薦

c語言的設(shè)計目標是提供一種能以簡易的方式編譯,、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言,。那么c語言預(yù)處理知識都有哪些呢,?以下僅供參考!

在編譯器編譯之前,,會首先搜索預(yù)處理指令,,按照指令完成編譯,預(yù)處理又分為:文件包含,、條件編譯,、布局控制(雜注)和宏替換。

#include""和#include<>,,前者是和該c文件相同目錄下的.h,,如 #include "os_cfg.h" ,或指明路徑的.h,,如 #include "softwareucos-iisourceucos_ii.h" ;

后者是編譯器系統(tǒng)路徑中的.h,,一般c語言標準庫函數(shù)在編譯器里集成,,如 #include。

只要包含了.h,,而.h里有函數(shù)聲明(或變量,、結(jié)構(gòu)體實例),那么不論這個函數(shù)(變量,、結(jié)構(gòu)體實例)在那個.c文件里定義的,,都可以在主c文件中使用。

對于函數(shù),,可以按功能分類成各種模塊,,集合在一起寫成一個.c文件,然后作同名的.h給出函數(shù)聲明,如果模塊太多,,也可以再用一個.h來包含各模塊的.h,,ucos-ii中的includes.h就是這樣。

對于變量,,c模塊中的全局變量只對該模塊有效,,如果想要被其他c文件訪問,就得在.h里聲明,,如果主c包含了這個.h,,那么此變量就成了真正全局的了。

對于結(jié)構(gòu)體實例,,其結(jié)構(gòu)的定義可以放在.h里,(如果不需要到處定義很多實例放在c里也可以),,實例定義在c里,而聲明放在.h里,,這樣就到處可用此實例了,。

#include 的對象直接插入到了該位置,所以可能出現(xiàn)#include重復(fù)甚至嵌套,,用#ifndef...#define...代碼...#endif的方法可以保證重復(fù)包含的.h那個只在第一次出現(xiàn)時編譯.

上面的#ifndef就是條件編譯的一種,。條件編譯主要用于跳過某些代碼不編譯,這樣可以用來寫一個c文件,,但是適應(yīng)不同硬件版本,,或者可采用不同算法。我就經(jīng)常用多種算法寫同一個功能,,#define method 1,#if methof==1...#endif, #if method ==2...#endif

protothread的神奇功能就是用宏和條件編譯來實現(xiàn)的,。舉個例子:

#define lc_init(s) s = 0;

#define lc_resume(s) switch(s) { case 0:

#define lc_set(s) s = __line__; case __line__:

#define lc_end(s) }

#define pt_begin(pt) { char pt_yield_flag = 1; lc_resume((pt)->lc)

每個線程執(zhí)行一次 pt_begin(pt),這樣就創(chuàng)建了一個switch,,一開始 pt->lc=0, pt_begin(pt)之后繼續(xù)執(zhí)行語句(本protothread的語句,,一般是while(1)),執(zhí)行到pt_wait_until(pt, condition)之類會調(diào)用lc_set((pt)->lc);然后return,,于是pt->lc記錄了行號,,創(chuàng)建了case:,下次進到線程之直接走 lc_resume(s)里的switch到上次的位置

主要是#pragma,從實用的.角度講,,就是編譯器為了簡化用戶操作,,給用戶提供了一些命令,不同編譯器是不一樣的,,比如,,iar ew430就可以直接定義中斷函數(shù)而不用管中斷向量表在哪兒,。(比如arm7就要編譯前手動改程序段的中斷向量表,,dspf2812就要用程序指令改數(shù)據(jù)段的中斷向量表,而51則由keil自動放置中斷跳轉(zhuǎn)指令,。)

#pragma vector=port1_vector

__interrupt void port_1(void)

{

//code

}

編譯器會自動給中斷函數(shù)指定中斷向量。

宏函數(shù)其實可以巧妙的代替函數(shù),,尤其是很短又沒有局部變量的一些語句,,還可以代換很多復(fù)雜的格式,如

#define f "%6.2f"

#define f3 f " " f " " f" "

用函數(shù)printf(f3,a,b,c),可以同時指定a,b,c 的格式

為了處理一些有用的信息,,預(yù)處理定義了一些預(yù)處理標識符,,雖然各種編譯器的預(yù)處理標識符不盡相同,但是他們都會處理下面的4種:

__file__ 正在編譯的文件的名字

__line__ 正在編譯的文件的行號

__date__ 編譯時刻的日期字符串,,例如: "25 dec 2000"

__time__ 編譯時刻的時間字符串,,例如: "12:30:55"

s("content_relate");

【c語言預(yù)處理知識】相關(guān)文章:

c語言預(yù)處理的相關(guān)知識

09-28

c語言編譯預(yù)處理

10-06

有趣的c語言預(yù)處理

10-04

c語言的預(yù)處理代碼

09-28

c語言預(yù)處理概述以及文件包含命令

10-06

c語言中的三種預(yù)處理功能

09-26

c語言入門必備知識

09-25

c語言進制知識總結(jié)

09-24

c語言基礎(chǔ)小知識

09-22

c語言的預(yù)處理

09-23

全文閱讀已結(jié)束,如果需要下載本文請點擊

下載此文檔
你可能感興趣的文章
a.付費復(fù)制
付費獲得該文章復(fù)制權(quán)限
特價:5.99元 10元
微信掃碼支付
已付款請點這里
b.包月復(fù)制
付費后30天內(nèi)不限量復(fù)制
特價:9.99元 10元
微信掃碼支付
已付款請點這里 聯(lián)系客服