專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實(shí)例 >> 瀏覽文章

有關(guān)c語言預(yù)處理

作者:啄木鳥   來源:啄木鳥   點(diǎn)擊數(shù):  更新時間:2014年06月14日   【字體:
先看下面三個問題:
1.預(yù)處理是C語言的一部分嗎?
2.包含“#”的都是預(yù)處理嗎?
3.預(yù)處理后面都不需要加;嗎?
下面是ANSI標(biāo)準(zhǔn)定義的C語言預(yù)處理指令:

另外,ANSC還定義了如下宏:
_LINE_ 表示正在編譯的文件的行號
_FILE_ 表示正在編譯的文件的名字
_DATE_ 表示編譯時刻的日期字符串,例如: "25 Dec 2007"
_TIME_ 表示編譯時刻的時間字符串,例如: "12:30:55"
_STDC_ 判斷該文件是不是定義成標(biāo)準(zhǔn)C
如果你用的是標(biāo)準(zhǔn)編譯器,理論上支持上宏定義,當(dāng)然,如果不是標(biāo)準(zhǔn)的話,有可能支持一部分,或者完全不支持。注意:宏名的書寫由標(biāo)識符與兩邊各二條下劃線構(gòu)成。
現(xiàn)在回到剛開始的問題:
1.預(yù)處理命令不是C語言文本的內(nèi)容,是某個編譯工具的功能,不同的編譯工具,功能及命令是可能不同的.
2.----------------
3.---------------
還有兩個經(jīng)典的問題:
***“#define M 100”是宏定義嗎?顯然不是,去掉雙引號的話,確實(shí)是宏定義,但是加上以后就是字符串了...
***C語言程序的執(zhí)行入口在哪?或者說從哪兒開始?是main()函數(shù)嗎?為什么?
析:
C語言程序的入口函數(shù)與開發(fā)工具及提供的運(yùn)行庫有關(guān),通常在鏈接是可以指定。在鏈接時,指定入口函數(shù),但入口函數(shù)必須是運(yùn)行啟動庫中支持的入口函數(shù),如:mainCRTStartup 就是調(diào)用會調(diào)用主函數(shù) main() 的入口函數(shù)。因此,入口函數(shù)是運(yùn)行庫提供的,當(dāng)然你也能定制自己的運(yùn)行庫,自己編寫入口函數(shù),入口函數(shù)主要是完成內(nèi)存及運(yùn)行庫的初始化工作, 在C語言中 main函數(shù)是主函數(shù),就是入口函數(shù)完成初始化工作后調(diào)用的函數(shù)。同的初始化環(huán)境,有不同的入口函數(shù)及主程序....
關(guān)閉窗口

相關(guān)文章