深入了解C語言——函數(shù)的使用(實例)

字號:

C語言生成的代碼在執(zhí)行效率上比其它高級語言都高?,F(xiàn)在讓我們來看看C語言生成的代碼具體是什么樣子的。當你看完本文對于C語言的了解一定會更深一步了。
    本文通過一個個實際案例程序來講解C語言。
    研究案例一
    工具: Turboc C v2.0,Debug,MASM v5.0,NASM
    實例C程序:
    /* example1.c */
    char ch;
    int e_main()
    {
    e_putchar(ch);
    }
    目標內(nèi)容:C語言調(diào)用函數(shù)的方法與細節(jié)
    我們使用的C編譯器是16位的Turboc C v2.0,它生成的是16位的代碼,比較簡單,方便我們來研究。同時我們也需要用到DOS下的DEBUG來進行反匯編。由于我們很多案例中的程序并不是完整的C程序,所以Turboc下的Tlink并不能為我們生成目標程序,所以我將使用MASM中的link.exe,同時里面的exe2bin.com也可以為我們把exe文件轉(zhuǎn)換成bin文件。
    這個程序沒有main函數(shù),我們用e_main來代替main函數(shù).這樣我們能避開C語言對main函數(shù)進行一系列處理的代碼.同樣,我們也用e_putchar()來代替我們平常使用的putchar().這里"e"的意思就是"example"。
    沒有了main函數(shù),我們的C程序就沒有了入口,所以在開始編譯這段C代碼之前,我還得寫幾行簡單的匯編代碼,通過它來作為我們程序的入口。
    ; C程序的入口 start.asm
    [BITS 16]
    [global start]
    [extern _e_main]
    start:
    call _e_main