高效的C編程之: 變量類型
charbyte;
charc;
unsignedstate;
unsignedflags;
};
externstructglobsg;
#definetxg.tx
#definerxg.rx
#definebyteg.byte
#definecg.c
#definestateg.state
#defineflagsg.flags
#else
externchartx;
externcharrx;
externcharbyte;
externcharc;
externunsignedstate;
externunsignedflags;
#endif
/*************
*globals.c*
*************/
/*DEFINITIONSofglobals-singlesourcefile*/
#ifdef__arm
#includeglobals.h
structglobsg;
#else
chartx;
charrx;
charbyte;
charc;
unsignedstate;
unsignedflags;
#endif
/************
*access.c*
************/
#includestdio.h>
#includeglobals.h
intmain()
{tx=1;
rx=2;
byte=3;
c=4;
state=5;
flags=6;
printf(%u%u%u%u%u%un,tx,rx,byte,c,state,flags);
return0;
}
將變量定義在結(jié)構(gòu)體內(nèi)有以下幾點好處。
·全局變量使用更小的內(nèi)存空間。(沒有使用結(jié)構(gòu)體占有24字節(jié),而使用結(jié)構(gòu)體之后只占有12字節(jié))
·全局變量被放置在ZI段而不是RW段,這樣就減少了ROM映像文件的大小。
c語言相關(guān)文章:c語言教程
評論