官术网_书友最值得收藏!

3 試用箭頭記號(hào)(harib02c)

事實(shí)上,在C語言里常常會(huì)用到類似于(*binfo).scrnx的表現(xiàn)手法,因此出現(xiàn)了一種不使用括號(hào)的省略表現(xiàn)方式,即binfo→scrnx,我們稱之為箭頭標(biāo)記方式。前面也講到過,a[i]是*(a + i)的省略表現(xiàn)形式所以可以說C語言中關(guān)于指針的省略表現(xiàn)形式很充實(shí),很豐富。

使用箭頭,可以將“xsize = (*binfo).scrnx; ”寫成“xsize = binfo->scrnx; ”,簡(jiǎn)單又方便。不過我們還想更簡(jiǎn)潔些,即連變量xsize都不用,而是直接以binfo->scrnx來代替xsize。

本次的HariMain節(jié)選

void HariMain(void)
{
    struct BOOTINFO *binfo = (struct BOOTINFO *) 0x0ff0;

    init_palette();
    init_screen(binfo->vram, binfo->scrnx, binfo->scrny);

哦,看上去真清爽。我們運(yùn)行一下“make run”,運(yùn)行正常。

這次我們想了很多方法,但這些都只是C語言寫法的問題,編譯成機(jī)器語言以后,幾乎沒有差別。既然沒有差別,筆者認(rèn)為寫得清晰一些沒什么壞處,所以決定今后積極使用這種寫法。討厭在寫法上花工夫的人不使用結(jié)構(gòu)體也沒關(guān)系,再退一步,還可以不用指針,繼續(xù)使用write_mem8什么的也沒問題。可以根據(jù)自己的理解程度和習(xí)慣,選擇自己喜歡的方式。

主站蜘蛛池模板: 杨浦区| 太和县| 台东县| 资中县| 普安县| 济源市| 沁阳市| 兰西县| 东乡| 康平县| 祁东县| 旅游| 双牌县| 叙永县| 佛山市| 上犹县| 崇文区| 兴义市| 静乐县| 浪卡子县| 大邑县| 安徽省| 陇川县| 朝阳区| 平原县| 柞水县| 连云港市| 白河县| 枝江市| 武川县| 潼南县| 博兴县| 通化县| 崇礼县| 册亨县| 台中市| 吉木萨尔县| 通许县| 阿拉善盟| 安西县| 璧山县|