锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美精品九九,新67194成人永久网站,久久精品视频在线http://m.shnenglu.com/zjj2816/category/2048.htmlzh-cnWed, 21 May 2008 21:26:59 GMTWed, 21 May 2008 21:26:59 GMT60xt umlhttp://m.shnenglu.com/zjj2816/archive/2007/11/20/36991.html浜曟硥浜曟硥Tue, 20 Nov 2007 01:49:00 GMThttp://m.shnenglu.com/zjj2816/archive/2007/11/20/36991.htmlhttp://m.shnenglu.com/zjj2816/comments/36991.htmlhttp://m.shnenglu.com/zjj2816/archive/2007/11/20/36991.html#Feedback0http://m.shnenglu.com/zjj2816/comments/commentRss/36991.htmlhttp://m.shnenglu.com/zjj2816/services/trackbacks/36991.htmlhttp://blog.csdn.net/zhangjunhd/   1錛庡叧鑱旓紙Association錛夌被涔嬮棿鐨勫叧鑱斿ぇ澶氱敤鏉ヨ〃紺哄彉閲忓疄渚嬫寔鏈夌潃瀵瑰叾浠栧璞$殑寮曠敤銆?nbsp;  Phone鎷ユ湁涓涓Button鐨勫紩鐢ㄣ?nbsp;  2錛庤仛鍚堬紙Aggregation錛夎仛鍚堟槸鍏寵仈鐨勪竴縐嶇壒孌婂艦寮忥紝瀹冩剰鍛崇潃涓縐嶆暣浣?閮ㄥ垎錛坵hole/part錛夌殑鍏崇郴銆?nbsp;  涓涓暣浣撲笉鑳芥槸瀹冭嚜宸辯殑涓閮ㄥ垎銆?鍥犳 錛屽疄渚嬩笉鑳藉艦鎴愯仛鍚堝洖璺紝涓涓崟鐙殑瀵硅薄涓嶈兘澶熸垚涓哄畠鑷繁鐨勮仛鍚堬紝涓や釜瀵硅薄涓嶈兘浜掔浉鑱氬悎錛屼笁涓璞′笉鑳藉艦鎴愪竴涓仛鍚堢幆銆備笅鍥句負(fù)瀹炰緥闂寸殑闈炴硶鑱氬悎寰幆錛?3錛庣粍鍚堬紙Composition錛夌粍鍚堟槸涓縐嶇壒孌婄殑鑱氬悎褰㈠紡銆?nbsp; UML瀵圭粍鍚堢殑瀹氫箟錛?鈶犲鍚岃仛鍚堬紝瀹炰緥涓嶈兘鏈夊驚鐜?鈶′竴涓鎵鏈夎呭疄渚嬩笉鑳藉悓鏃舵湁涓や釜鎵鏈夎呫?鈶㈡墍鏈夎呰礋璐h緇勫悎鐨勫璞$殑鐢熷懡鍛ㄦ湡鐨勭鐞嗐傚鏋滄墍鏈夎呰閿姣侊紝琚墍鏈夎呬篃蹇呴』璺熺潃涓璧瘋閿姣侊紝濡傛灉鎵鏈夎呰澶嶅埗錛岃鎵鏈夎呬篃蹇呴』璺熺潃涓璧瘋澶嶅埗銆?br>

http://blog.csdn.net/dylgsy/archive/2006/08/16/1076044.aspx   UML綾誨浘鍏崇郴鍏ㄩ潰鍓栨瀽

http://www.ibm.com/developerworks/cn/rational/r-shenzj/         鍒╃敤Rational Rose榪涜C++浠g爜鍜屾暟鎹簱緇撴瀯鍒嗘瀽



vs2008 鏀寔 c++ 綾誨浘浜?br>


浜曟硥 2007-11-20 09:49 鍙戣〃璇勮
]]>
浣跨敤鍜岀敓鎴愬簱http://m.shnenglu.com/zjj2816/archive/2006/07/24/10403.html浜曟硥浜曟硥Mon, 24 Jul 2006 07:04:00 GMThttp://m.shnenglu.com/zjj2816/archive/2006/07/24/10403.htmlhttp://m.shnenglu.com/zjj2816/comments/10403.htmlhttp://m.shnenglu.com/zjj2816/archive/2006/07/24/10403.html#Feedback0http://m.shnenglu.com/zjj2816/comments/commentRss/10403.htmlhttp://m.shnenglu.com/zjj2816/services/trackbacks/10403.html
搴撴湁鍔ㄦ佷笌闈?rùn)鎬佷袱縐嶏紝鍔ㄦ侀氬父鐢?so涓哄悗緙錛岄潤(rùn)鎬佺敤.a涓哄悗緙銆備緥濡傦細(xì)libhello.so libhello.a

涓轟簡(jiǎn)鍦ㄥ悓涓緋葷粺涓嬌鐢ㄤ笉鍚岀増鏈殑搴擄紝鍙互鍦ㄥ簱鏂囦歡鍚嶅悗鍔犱笂鐗堟湰鍙蜂負(fù)鍚庣紑,渚嬪錛?libhello.so.1.0,鐢變簬紼嬪簭榪炴帴榛樿浠?so涓烘枃浠跺悗緙鍚嶃傛墍浠ヤ負(fù)浜?jiǎn)鋴社敤杩欎簺搴撳Q岄氬父浣跨敤寤虹珛絎﹀彿榪炴帴鐨勬柟寮忋?
ln -s libhello.so.1.0 libhello.so.1
ln -s libhello.so.1 libhello.so

浣跨敤搴?

褰撹浣跨敤闈?rùn)鎬佺殑紼嬪簭搴撴椂錛岃繛鎺ュ櫒浼?xì)鎵惧嚭绋嬪簭鎵闇鐨勫嚱鏁幫紝鐒跺悗灝嗗畠浠嫹璐濆埌鎵ц鏂囦歡錛岀敱浜庤繖縐嶆嫹璐濇槸瀹屾暣鐨勶紝鎵浠ヤ竴鏃﹁繛鎺ユ垚鍔燂紝闈?rùn)鎬佺▼搴忓簱涔熷氨涓嶅啀闇瑕佷簡(jiǎn)銆傜劧鑰岋紝瀵瑰姩鎬佸簱鑰岃█錛屽氨涓嶆槸榪欐牱銆傚姩鎬佸簱浼?xì)鍦ㄦ墽琛尳E嬪簭鍐呯暀涓嬩竴涓爣璁扳樻寚鏄庡綋紼嬪簭鎵ц鏃訛紝棣栧厛蹇呴』杞藉叆榪欎釜搴撱傜敱浜庡姩鎬佸簱鑺傜渷絀洪棿錛宭inux涓嬭繘琛岃繛鎺ョ殑緙虹渷鎿嶄綔鏄鍏堣繛鎺ュ姩鎬佸簱錛屼篃灝辨槸璇達(dá)紝濡傛灉鍚屾椂瀛樺湪闈?rùn)鎬佸拰鍔ㄦ佸簱錛屼笉鐗瑰埆鎸囧畾鐨勮瘽錛屽皢涓庡姩鎬佸簱鐩歌繛鎺ャ?
鐜板湪鍋囪鏈変竴涓彨hello鐨勭▼搴忓紑鍙戝寘錛屽畠鎻愪緵涓涓潤(rùn)鎬佸簱libhello.a 涓涓姩鎬佸簱libhello.so,涓涓ご鏂囦歡hello.h,澶存枃浠朵腑鎻愪緵sayhello()榪欎釜鍑芥暟
/* hello.h */
void sayhello();
鍙﹀榪樻湁涓浜涜鏄庢枃妗c傝繖涓涓吀鍨嬬殑紼嬪簭寮鍙戝寘緇撴瀯
1.涓庡姩鎬佸簱榪炴帴
linux榛樿鐨勫氨鏄笌鍔ㄦ佸簱榪炴帴錛屼笅闈㈣繖孌電▼搴弔estlib.c浣跨敤hello搴撲腑鐨剆ayhello()鍑芥暟

/*testlib.c*/
#include <hello.h>
#include <stdio.h>

int main()
{
sayhello();
return 0;
}

浣跨敤濡備笅鍛戒護(hù)榪涜緙栬瘧
$gcc -c testlib.c -o testlib.o
鐢ㄥ涓嬪懡浠よ繛鎺ワ細(xì)
$gcc testlib.o -lhello -o testlib
鍦ㄨ繛鎺ユ椂瑕佹敞鎰忥紝鍋囪libhello.o 鍜宭ibhello.a閮藉湪緙虹渷鐨勫簱鎼滅儲(chǔ)璺緞涓?usr/lib涓嬶紝濡傛灉鍦ㄥ叾瀹冧綅緗鍔犱笂-L鍙傛暟
涓庝笌闈?rùn)鎬佸簱榪炴帴楹葷儲(chǔ)涓浜涳紝涓昏鏄弬鏁伴棶棰樸傝繕鏄笂闈㈢殑渚嬪瓙錛?
$gcc testlib.o -o testlib -WI,-Bstatic -lhello
娉細(xì)榪欎釜鐗瑰埆鐨?-WI錛?Bstatic"鍙傛暟錛屽疄闄呬笂鏄紶緇欎簡(jiǎn)榪炴帴鍣╨d.
鎸囩ず瀹冧笌闈?rùn)鎬佸簱榪炴帴錛屽鏋滅郴緇熶腑鍙湁闈?rùn)鎬佸簱褰撶劧灝變笉闇瑕佽繖涓弬鏁頒簡(jiǎn)銆?
濡傛灉瑕佸拰澶氫釜搴撶浉榪炴帴錛岃屾瘡涓簱鐨勮繛鎺ユ柟寮忎笉涓鏍鳳紝姣斿涓婇潰鐨勭▼搴忔棦瑕佸拰libhello榪涜闈?rùn)鎬佽繛鎺ワ紝鍙堣鍜宭ibbye榪涜鍔ㄦ佽繛鎺ワ紝鍏跺懡浠ゅ簲涓猴細(xì)
$gcc testlib.o -o testlib -WI,-Bstatic -lhello -WI,-Bdynamic -lbye
3.鍔ㄦ佸簱鐨勮礬寰勯棶棰?
涓轟簡(jiǎn)璁╂墽琛岀▼搴忛『鍒╂壘鍒板姩鎬佸簱錛屾湁涓夌鏂規(guī)硶錛?
(1)鎶婂簱鎷瘋礉鍒?usr/lib鍜?lib鐩綍涓嬨?
(2)鍦↙D_LIBRARY_PATH鐜鍙橀噺涓姞涓婂簱鎵鍦ㄨ礬寰勩備緥濡傚姩鎬佸簱libhello.so鍦?home/ting/lib鐩綍涓嬶紝浠ash涓轟緥錛屼嬌鐢ㄥ懡浠わ細(xì)
$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ting/lib
(3) 淇敼/etc/ld.so.conf鏂囦歡錛屾妸搴撴墍鍦ㄧ殑璺緞鍔犲埌鏂囦歡鏈熬錛屽茍鎵цldconfig鍒鋒柊銆傝繖鏍鳳紝鍔犲叆鐨勭洰褰曚笅鐨勬墍鏈夊簱鏂囦歡閮藉彲瑙併?
4.鏌ョ湅搴撲腑鐨勭鍙?
鏈夋椂鍊欏彲鑳介渶瑕佹煡鐪嬩竴涓簱涓埌搴曟湁鍝簺鍑芥暟錛宯m鍛戒護(hù)鍙互鎵撳嵃鍑哄簱涓殑娑夊強(qiáng)鍒扮殑鎵鏈夌鍙楓傚簱鏃㈠彲浠ユ槸闈?rùn)鎬佺殑涔熷彲浠ユ槸鍔ㄦ佺殑銆俷m鍒楀嚭鐨勭鍙鋒湁寰堝錛屽父瑙佺殑鏈変笁縐嶏紝涓縐嶆槸鍦ㄥ簱涓璋冪敤錛屼絾騫舵病鏈夊湪搴撲腑瀹氫箟(琛ㄦ槑闇瑕佸叾浠栧簱鏀寔)錛岀敤U琛ㄧず錛涗竴縐嶆槸搴撲腑瀹氫箟鐨勫嚱鏁幫紝鐢═琛ㄧず錛岃繖鏄渶甯歌鐨勶紱鍙﹀涓縐嶆槸鎵璋撶殑鈥滃急鎬佲濈鍙鳳紝瀹冧滑铏界劧鍦ㄥ簱涓瀹氫箟錛屼絾鏄彲鑳借鍏朵粬搴撲腑鐨勫悓鍚嶇鍙瘋鐩栵紝鐢╓琛ㄧず銆備緥濡傦紝鍋囪寮鍙戣呭笇鏈涚煡閬撲笂澶彁鍒扮殑hello搴撲腑鏄惁瀹氫箟浜?jiǎn)printf():
$nm libhello.so |grep printf
U printf
U琛ㄧず絎﹀彿printf琚紩鐢紝浣嗘槸騫舵病鏈夊湪鍑芥暟鍐呭畾涔夛紝鐢辨鍙互鎺ㄦ柇錛岃姝e父浣跨敤hello搴擄紝蹇呴』鏈夊叾瀹冨簱鏀寔錛屽啀浣跨敤ldd鍛戒護(hù)鏌ョ湅hello渚濊禆浜庡摢浜涘簱錛?
$ldd hello
libc.so.6=>/lib/libc.so.6(0x400la000)
/lib/ld-linux.so.2=>/lib/ld-linux.so.2 (0x40000000)
浠庝笂闈㈢殑緇撴灉鍙互緇х畫(huà)鏌ョ湅printf鏈緇堝湪鍝噷琚畾涔夛紝鏈夊叴瓚e彲浠o on


鐢熸垚搴?

絎竴姝ヨ鎶婃簮浠g爜緙栫粠鎴愮洰鏍囦唬鐮併備互涓嬮潰鐨勪唬鐮佷負(fù)渚嬶紝鐢熸垚涓婇潰鐢ㄥ埌鐨刪ello搴擄細(xì)
/* hello.c */
#include <stdio.h>
void sayhello()
{
printf("hello,world\n");
}
鐢╣cc緙栫粠璇ユ枃浠訛紝鍦ㄧ紪緇庢椂鍙互浣跨敤浠諱綍鍏ㄦ硶鐨勭紪緇庡弬鏁幫紝渚嬪-g鍔犲叆璋冭瘯浠g爜絳夛細(xì)
gcc -c hello.c -o hello.o

1.榪炴帴鎴愰潤(rùn)鎬佸簱
榪炴帴鎴愰潤(rùn)鎬佸簱浣跨敤ar鍛戒護(hù)錛屽叾瀹瀉r鏄痑rchive鐨勬剰鎬?
$ar cqs libhello.a hello.o
2.榪炴帴鎴愬姩鎬佸簱
鐢熸垚鍔ㄦ佸簱鐢╣cc鏉ュ畬鎴愶紝鐢變簬鍙兘瀛樺湪澶氫釜鐗堟湰錛屽洜姝ら氬父鎸囧畾鐗堟湰鍙鳳細(xì)
$gcc -shared -Wl,-soname,libhello.so.1 -o libhello.so.1.0 hello.o
鍙﹀鍐嶅緩绔嬩袱涓鍙瘋繛鎺ワ細(xì)
$ln -s libhello.so.1.0 libhello.so.1
$ln -s libhello.so.1 libhello.so
榪欐牱涓涓猯ibhello鐨勫姩鎬佽繛鎺ュ簱灝辯敓鎴愪簡(jiǎn)銆傛渶閲嶈鐨勬槸浼爂cc -shared 鍙傛暟浣垮叾鐢熸垚鏄姩鎬佸簱鑰屼笉鏄櫘閫氭墽琛岀▼搴忋?
-Wl 琛ㄧず鍚庨潰鐨勫弬鏁頒篃灝辨槸-soname,libhello.so.1鐩存帴浼犵粰榪炴帴鍣╨d榪涜澶勭悊銆傚疄闄呬笂錛屾瘡涓涓簱閮芥湁涓涓猻oname錛屽綋榪炴帴鍣ㄥ彂鐜板畠姝e湪鏌ユ壘鐨勭▼搴忓簱涓湁榪欐牱涓涓悕縐幫紝榪炴帴鍣ㄤ究浼?xì)灏唖oname宓屽叆榪炵粨涓殑浜岃繘鍒舵枃浠跺唴錛岃屼笉鏄畠姝e湪榪愯鐨勫疄闄呮枃浠跺悕錛屽湪紼嬪簭鎵ц鏈熼棿錛岀▼搴忎細(xì)鏌ユ壘鎷ユ湁soname鍚嶅瓧鐨勬枃浠訛紝鑰屼笉鏄簱鐨勬枃浠跺悕錛屾崲鍙ヨ瘽璇達(dá)紝soname鏄簱鐨勫尯鍒嗘爣蹇椼?
榪欐牱鍋氱殑鐩殑涓昏鏄厑璁哥郴緇熶腑澶氫釜鐗堟湰鐨勫簱鏂囦歡鍏卞瓨錛屼範(fàn)鎯笂鍦ㄥ懡鍚嶅簱鏂囦歡鐨勬椂鍊欓氬父涓巗oname鐩稿悓
libxxxx.so.major.minor
鍏朵腑錛寈xxx鏄簱鐨勫悕瀛楋紝major鏄富鐗堟湰鍙鳳紝minor 鏄鐗堟湰鍙?img src ="http://m.shnenglu.com/zjj2816/aggbug/10403.html" width = "1" height = "1" />

浜曟硥 2006-07-24 15:04 鍙戣〃璇勮
]]>
鏂版椂浠g殑闂ㄥ墠 32浣嶄笘鐣屼腑鐨?4浣嶇紪紼?/title><link>http://m.shnenglu.com/zjj2816/archive/2006/07/07/9539.html</link><dc:creator>浜曟硥</dc:creator><author>浜曟硥</author><pubDate>Fri, 07 Jul 2006 05:51:00 GMT</pubDate><guid>http://m.shnenglu.com/zjj2816/archive/2006/07/07/9539.html</guid><wfw:comment>http://m.shnenglu.com/zjj2816/comments/9539.html</wfw:comment><comments>http://m.shnenglu.com/zjj2816/archive/2006/07/07/9539.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zjj2816/comments/commentRss/9539.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zjj2816/services/trackbacks/9539.html</trackback:ping><description><![CDATA[ <strong>涓?6銆?2銆?4浣嶆灦鏋勭紪鍐欏彲縐繪浠g爜</strong> <br /> <br />銆銆涓?6浣嶇浉姣旓紝32浣嶆剰鍛崇潃紼嬪簭鏇村揩銆佸彲鐩存帴瀵誨潃璁塊棶鏇村鐨勫唴瀛樺拰鏇村ソ鐨勫鐞嗗櫒鏋舵瀯銆傞壌浜庢錛岃秺鏉ヨ秺澶氱殑紼嬪簭鍛樺凡緇忓紑濮嬭冭檻鍒╃敤64浣嶅鐞嗗櫒鎵甯︽潵鐨勫法澶т紭鍔夸簡(jiǎn)銆?br /><br />銆銆鍏嬮浄鐮旂┒(Cray Research 搴斾負(fù)鍝佺墝鍚?璁$畻鏈哄凡緇忓紑濮嬩嬌鐢?4浣嶅瓧錛屽茍鍙闂洿澶х殑鍐呭瓨鍦板潃銆傜劧鑰岋紝浣滀負(fù)姝e湪鍚戝紑鍙戞爣鍑嗚蔣浠跺拰涓庡叾浠栨搷浣滅郴緇熺浉浜掑姫鍔涚殑涓閮ㄥ垎錛屾垜浠凡緇忓仠姝簡(jiǎn)縐繪閭d簺鍘熸湰鍩轟簬32浣嶅鐞嗗櫒鐨勪唬鐮併備簨瀹炰笂錛屾垜浠笉鏂亣鍒版垜浠О涔嬩負(fù)鈥?2浣嶄富涔夆濈殑浠g爜錛岃繖浜涗唬鐮侀兘鏄湪鍋囧畾鏈哄櫒瀛楅暱涓?2浣嶇殑鎯呭喌涓嬬紪鍐欑殑錛屽洜鑰屽緢闅劇Щ妞嶈繖縐嶄唬鐮侊紝鎵浠ュ繀欏葷‘绔嬩竴浜涚畝鍗曠殑鎸囧鏂歸拡錛屼互渚垮姪浜庣紪鍐欒法16銆?2銆?4浣嶅鐞嗗櫒騫沖彴鐨勪唬鐮併?br /><br />銆銆鐢變簬鏈変竴浜涢仐鐣欓棶棰橈紝<a class="bluekey" target="_blank">C璇?/a>璦鍦ㄦ暟鎹被鍨嬪拰鏁版嵁鏋勯犳柟闈紝鏄懼緱鏈夌偣榪囧墿浜?jiǎn)銆傚彲浠ヤ嬌鐢ㄧ殑涓嶄粎浠呮槸char銆乻hort銆乮nt鍜宭ong綾誨瀷錛岃繕鏈夌浉搴旂殑unsigned錛堟棤絎﹀彿錛夌被鍨嬶紝褰撶劧浣犲彲鍦ㄧ粨鏋?structure)鍜岃仈鍚?union)涓販鍚堜嬌鐢紝鍙互鍦ㄨ仈鍚堜腑鍖呭惈緇撴瀯錛屽啀鍦ㄧ粨鏋勪腑鍖呭惈鑱斿悎錛屽鏋滆繕瀚屾暟鎹被鍨嬩笉澶熷鏉傦紝榪樺彲浠ヨ漿鎹㈡垚姣旂壒浣嶏紝褰撶劧涔熷彲浠ユ妸涓縐嶆暟鎹?a class="bluekey" target="_blank">綾誨瀷杞崲</a>鎴愬彟涓縐嶄綘鎯寵鐨勬暟鎹被鍨嬨傛鏄洜涓鴻繖浜涘伐鍏峰お寮哄ぇ錛屽鏋滀笉瀹夊叏鍦頒嬌鐢ㄥ畠浠紝灝辨湁鍙兘浼?xì)浼ゅ埌鑷纷兒?jiǎn)銆?br /><br />銆銆<b>楂樼駭浠g爜鐨勯珮綰х粨鏋?/b><br /><br />銆銆鍦↘ernighan鍜孭lauger緇忓吀鐨勩奣he Elements of Programming Style銆嬩竴涔︿腑錛屼粬浠殑寤鴻鏄滈夋嫨浣跨▼搴忕湅涓婂幓綆鍗曠殑鏁版嵁琛ㄧず娉曗濄傚涓漢鑰岃█錛岃繖鎰忓懗鐫涓洪珮綰х紪紼嬩嬌鐢ㄩ珮綰?a class="bluekey" target="_blank">鏁版嵁緇撴瀯</a>錛岃屼綆綰х紪紼嬩嬌鐢ㄤ綆綰ф暟鎹粨鏋勩?br /><br />銆銆鍦ㄦ垜浠Щ妞嶇殑紼嬪簭涓紝鏈変竴涓父瑙佺殑32浣嶄富涔塨ug錛屼笉濡傛嬁瀹冩潵鍋氫釜渚嬪瓙錛岀鍐呭皵澶у緙栧啓鐨勭敤浜庣綉闂翠簰璁跨殑璺敱鍗忚寮曟搸錛屽湪浼厠鍒╃綉緇滅幆澧冧笅錛堟寚TCP/IP錛夛紝鑷劧鏄嬌鐢╥net_addr( )鏉ユ妸琛ㄧずInternet鍦板潃鐨?a class="bluekey" target="_blank">瀛楃涓?/a>杞崲鎴愪簩榪涘埗褰㈠紡銆侷nternet鍦板潃紕板閥涔熸槸32浣嶇殑錛屽氨濡傝繍琛屼集鍏嬪埄緗戠粶緋葷粺鐨勫叾浠栬綆楁満涓鏍鳳紝閮芥槸鏈夌潃鍚屾牱鐨勫瓧瀹姐?<br /><br />銆銆浣嗕篃瀛樺湪鐫鏈夊叧Internet鍦板潃鐨勯珮綰у畾涔夛細(xì)in_ addr緇撴瀯銆傝繖涓粨鏋勫畾涔夊寘鎷簡(jiǎn)瀛愬煙s_ addr錛屽畠鏄竴涓寘鍚簡(jiǎn)Internet鍦板潃鐨剈nsigned long鏍囬噺銆俰net_addr()鎺ュ彈涓涓寚鍚戝瓧絎︾殑鎸囬拡錛屽茍涓旇繑鍥炰竴涓猽nsigned long錛屽湪杞崲鍦板潃瀛楃涓茶繃紼嬩腑濡傛灉鍙戠敓閿欒錛宨net_addr灝嗚繑鍥?1銆?br /><br />銆銆紼嬪簭Gated璇誨彇浠ユ枃鏈牸寮忓瓨鏀綢nternet鍦板潃鐨勯厤緗枃浠訛紝騫舵妸瀹冧滑鏀懼叆sockaddr_in錛堣繖鏄竴涓寘鍚簡(jiǎn)緇撴瀯in_addr鐨勯珮綰х粨鏋勶級(jí)銆備緥1(a)涓殑浠g爜鍙互鍦?2浣嶇數(shù)鑴戜笂姝e父榪愯錛屼絾縐繪鍒板厠闆風(fēng)爺絀惰綆楁満涓婏紝鍗存棤娉曡繍琛岋紝涓轟粈涔堝憿錛?br /><br />銆銆渚?錛氶珮綰т唬鐮佺殑楂樼駭緇撴瀯<br /><br />銆銆(a)<br /><br /><table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1"><tbody><tr><td>struct sockaddr_in saddrin<br />char *str;<br /><br />if ((saddrin.sin_addr.s_addr = inet_addr(str)) == (unsigned long)-1) {<br />銆do_some_error_handling;<br />}</td></tr></tbody></table><br />銆銆(b)<br /><br /><table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1"><tbody><tr><td>struct sockaddr_in saddrin<br />char *str;<br /><br />if (inet_aton(str, &saddrin.sin_addr) ! = OK) {<br />銆do_some_error_handling;<br />}</td></tr></tbody></table><br />銆銆鍥犱負(fù)鍙inet_addr鑳藉姝g‘鍦拌В鏋愬瓧絎︿覆錛岄偅涔堜竴鍒嘜K銆傚綋inet_addr鍦?4浣嶈綆楁満涓婅繑鍥炰竴涓敊璇椂錛岃繖孌典唬鐮佸嵈鏈兘鎹曟崏鍒般備綘蹇呴』瑕佽冭檻姣旇緝璇彞涓殑鏁版嵁浣嶅錛屾潵紜畾鍒板簳鏄摢鍑轟簡(jiǎn)閿欍?br /><br />銆銆棣栧厛錛宨net_addr榪斿洖閿欒鍊尖斺攗nsigned long -1錛屽湪64浣嶄腑琛ㄧず涓烘瘮鐗逛綅鍏ㄤ負(fù)1錛岃繖涓艱瀛樺偍鍦ㄧ粨鏋刬n_addr涓嬬殑瀛愬煙s_addr涓紝鑰宨n_addr蹇呴』鏄?2浣嶆潵鍖歸厤Internet鍦板潃錛屾墍浠ュ畠鏄竴涓?2姣旂壒浣嶇殑unsigned int錛堝湪鎴戜滑鐨勭紪璇戝櫒涓婏紝int鏄?4浣嶏級(jí)銆傜幇鍦ㄦ垜浠瓨鍌ㄨ繘32涓?錛屽瓨鍌ㄨ繘鐨勫煎皢涓巙nsigned long -1姣旇緝銆傚綋鎴戜滑瀛樺偍32涓?浜巙nsigned int鏃訛紝緙栬瘧鍣ㄨ嚜鍔ㄦ妸32浣嶆彁鍗囦負(fù)64浣嶏紱榪欐牱錛屾暟鍊?x00000000 ffffffff涓?xffffffff ffffffff鐨勬瘮杈冨綋鐒跺氨澶辮觸浜?jiǎn)銆傝繖鏄竴涓緢闅懼彂鐜扮殑bug錛岀壒鍒槸鍦ㄨ繖縐嶅洜涓?2浣嶅埌64浣嶇殑闅愬紡鎻愬崌涓娿?br /><br />銆銆閭f垜浠榪欎釜bug鎬庝箞鍔炲憿錛熶竴涓В鍐蟲(chóng)柟娉曟槸鍦ㄨ鍙ヤ腑姣旇緝0xffffffff錛岃屼笉鏄?1錛屼絾榪欏張浼?xì)鋴射唬鐮佹洿鍔犱緷璧栦簬鐗瑰畾澶畯鐨勫璞°傚彟涓涓柟娉曟槸錛屼嬌鐢ㄤ竴涓腑闂寸殑unsigned long鍙橀噺錛屼粠鑰屽湪鎶婄粨鏋滃瓨鍏ockaddr_in鍓嶏紝鎵ц姣旇緝錛屼絾榪欎細(xì)璁╃▼搴忎唬鐮佹洿澶嶆潅銆?br /><br />銆銆鐪熸鐨勯棶棰樻墍鍦ㄦ槸錛屾垜浠湡鏈涗竴涓猽nsigned long鍊間笌涓涓?2浣嶉噺錛堝Internet鍦板潃錛夌浉絳夈侷nternet鍦板潃蹇呴』浠?2浣嶅艦寮忚繘琛屽瓨鍌紝浣嗘湁浜涙椂鍊欑敤涓涓爣閲忥紝鏉ヨ闂繖涓湴鍧鐨勪竴閮ㄥ垎錛屾槸闈炲父鏂逛究鐨勩傚湪32浣嶅瓧闀跨殑鐢?shù)鑴戜腑锛岀敤涓涓猯ong鏁板鹼紙甯歌褰撲綔32浣嶏級(jí)鏉ヨ闂繖涓湴鍧錛岀湅涓婂幓娌′粈涔堥棶棰樸傝鎴戜滑鏆傛椂涓嶆兂涓涓綆綰х殑鏁版嵁欏癸紙32浣岻nternet鍦板潃錛夋槸鍚︿笌涓涓満鍣ㄥ瓧鐩哥瓑錛岄偅涔堥珮綰ф暟鎹被鍨嬬粨鏋刬n_addr灝卞簲璇ヨ涓鐩翠嬌鐢ㄣ傚洜涓篿n_addr涓病鏈夋棤鏁堝鹼紝閭d箞搴旀湁涓涓崟鐙殑鐘舵佺敤浣滆繑鍥炲箋?br /><br />銆銆瑙e喅鏂規(guī)鏄畾涔変竴涓柊鐨勫嚱鏁幫紝灝卞儚inet_addr閭f牱錛屼絾榪斿洖涓涓姸鎬佸鹼紝鑰屼笖鎺ュ彈涓涓粨鏋刬n_addr浣滀負(fù)鍙傛暟錛屽弬瑙佷緥1(b)銆傚洜涓洪珮綰х殑鏁版嵁鍏冪礌鍙互涓鐩翠嬌鐢紝鑰岃繑鍥炵殑鍊兼槸娌℃湁婧㈠嚭鐨勶紝鎵浠ヨ繖涓唬鐮佹槸鍙互璺ㄦ灦鏋勭Щ妞嶇殑錛岃屼笉綆″瓧闀挎槸澶氬皯銆傝櫧鐒朵集鍏嬪埄鍙戝竷浜?jiǎn)NET2錛屽叾涓殑紜畾涔変簡(jiǎn)涓涓柊鐨勫嚱鏁癷net_aton()錛屼絾濡傛灉璇曠潃鏀瑰彉inet_addr()涓殑浠g爜錛屽皢浼?xì)鎹熷潖璁稿绋嬪簭銆?br /><br />銆銆<b>浣庣駭浠g爜鐨勪綆綰х粨鏋?/b><br /><br />銆銆浣庣駭緙栫▼鎰忓懗鐫鐩存帴鎿嶇旱鐗╃悊璁懼鎴栬呯壒瀹氬崗璁殑閫氳鏍煎紡錛屼緥濡傦紝璁懼椹卞姩紼嬪簭緇忓父浣跨敤闈炲父綺劇‘鐨勪綅妯″紡鏉ユ搷綰墊帶鍒跺瘎瀛樺櫒銆傛澶栵紝<a class="bluekey" target="_blank">緗戠粶鍗忚</a>閫氳繃鐗瑰畾鐨勬瘮鐗逛綅妯″紡浼犺緭鏁版嵁欏規(guī)椂錛屼篃蹇呴』閫傚綋鍦拌漿璇戙?br /><br />銆銆涓轟簡(jiǎn)鎿嶇旱鐗╃悊鏁版嵁欏癸紝姝ゅ鐨勬暟鎹粨鏋勫繀欏誨噯紜湴鍙嶆槧琚搷綰電殑鍐呭銆傛瘮鐗逛綅鏄竴涓笉閿欑殑閫夋嫨錛屽洜涓哄畠浠濂芥寚瀹氫簡(jiǎn)姣旂壒鐨勪綅鏁板強(qiáng)鎺掑垪銆備簨瀹炰笂錛屾鏄繖縐嶇簿紜害錛屼嬌姣旂壒浣嶇浉瀵逛簬short銆乮nt銆乴ong錛屾洿濂藉湴鏄犲儚浜?jiǎn)鐗╃悊缁撴瀯锛坰hort銆乮nt銆乴ong浼?xì)鍥犱负鐢?shù)鑴戠殑涓嶅悓鑰屾敼鍙橈紝鑰屾瘮鐗逛綅涓嶄細(xì)錛夈?br /><br />銆銆褰撴槧鍍忎竴涓墿鐞嗙粨鏋勬椂錛屾槸閫氳繃瀹氫箟鏍煎紡鏉ヤ嬌姣旂壒浣嶈揪鍒拌繖縐嶇簿搴︾殑錛岃繖灝變嬌浣犲繀欏諱竴鐩翠嬌鐢ㄤ竴縐嶇紪鐮侀鏍兼潵璁塊棶緇撴瀯銆傛鏃剁殑姣忎釜浣嶅煙閮芥槸鍛藉悕鐨勶紝浣犲啓鍑虹殑浠g爜鍙洿鎺ヨ闂繖浜涗綅鍩熴傚綋璁塊棶鐗╃悊緇撴瀯鏃訛紝鏈変歡浜嬪彲鑳戒綘騫朵笉鎯沖幓鍋氾紝閭e氨鏄嬌鐢ㄦ爣閲忔暟緇?short銆乮nt銆乷r long)錛岃闂繖浜涙暟緇勭殑浠g爜閮藉亣瀹氬瓨鍦ㄤ竴涓壒瀹氱殑姣旂壒浣嶅錛屽綋縐繪榪欎簺浠g爜鍒頒竴鍙頒嬌鐢ㄤ笉鍚屽瓧瀹界殑鐢?shù)鑴戜笂鏃跺Q屽氨鍙兘涓嶆紜簡(jiǎn)銆?br /><br />銆銆鍦ㄦ垜浠Щ妞峆EX鍥懼儚搴撴椂閬囧埌鐨勪竴涓棶棰橈紝灝辨秹鍙?qiáng)鍒板叾鏄犲儚鐨勫崗璁秷鎭l撴瀯銆傚湪鏌愬彴鐢?shù)鑴戜笂锛屽鏋渋nt鏁村瀷鐨勯暱搴︿笌娑堟伅涓殑鍏冪礌涓鏍鳳紝閭d緥2(a)涓殑浠g爜灝變細(xì)宸ヤ綔寰楀緢姝e父銆?2浣嶇殑鏁版嵁鍏冪礌鍦?2瀛楅暱鐨勭數(shù)鑴戜笂娌℃湁闂錛屾嬁鍒?4浣嶇殑鍏嬮浄璁$畻鏈轟笂錛屽畠?yōu)鍑洪敊浜?jiǎn)銆傚渚?(b)鑰岃█錛屼笉鍗曡鏀瑰彉緇撴瀯瀹氫箟錛岃繕瑕佹敼鍙樻墍鏈夋秹鍙?qiáng)鍒癱oord鏁扮粍鐨勪唬鐮併傝繖鏍鳳紝鎽嗗湪鎴戜滑闈㈠墠灝辨湁涓や釜閫夋嫨錛岃涔堥噸鍐欐秹鍙?qiáng)姝ゆ秷鎭殑鎵鏈変唬鐮侊紝瑕佷箞瀹氫箟涓涓綆綰х殑緇撴瀯鍜屼竴涓珮綰х殑緇撴瀯錛岀劧鍚庣敤涓孌電壒孌婄殑浠g爜鎶婃暟鎹粠涓涓嫹璐濆埌鍙︿竴涓綋涓紝涓嶈繃鎴戜篃涓嶆湡鏈涘彲浠ユ壘鍑烘瘡涓zcoord = draw_ msg.coord[2]鐨勫紩鐢紝鑰屼笖錛屽綋鐜板湪闇瑕佺Щ妞嶅埌涓涓柊鏋舵瀯涓婃椂錛屾妸鎵鏈夌殑浠g爜閮芥敼鍐欐垚濡備緥2(c)鎵紺烘棤鐤戞槸涓欏硅壈鑻︾殑宸ヤ綔銆傝繖涓壒孌婄殑闂鏄敱浜庡拷瑙嗗瓧闀跨殑涓嶅悓鑰屽甫鏉ョ殑錛屾墍浠ヤ笉鑳藉亣璁懼湪鍙Щ妞嶇殑浠g爜涓満鍣ㄥ瓧闀褲乻hort銆乮nt銆乴ong閮芥槸鍏鋒湁鍚屾牱鐨勫ぇ灝忋?br /><br />銆銆渚?錛氫綆綰т唬鐮佺殑浣庣駭緇撴瀯<br /><br />銆銆(a)<br /><br /><table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1"><tbody><tr><td>struct draw_msg {<br />銆int objectid;<br />銆int coord[3];<br />}</td></tr></tbody></table><br />銆銆(b)<br /><br /><table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1"><tbody><tr><td>struct draw_msg {<br />銆int objectid:32;<br />銆int coord1:32;<br />銆int coord2:32;<br />銆int coord3:32;<br />}</td></tr></tbody></table><br />銆銆(c)<br /><br /><table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1"><tbody><tr><td>int *iptr, *optr, *limit;<br />int xyz[3];<br /><br />iptr = draw_msg.coord;<br />limit = draw_msg.coord + sizeof(draw_msg.coord);<br /><br />optr = xyz;<br />while (iptr < limit)<br />*optr++ = *iptr++;</td></tr></tbody></table><strong>緇撴瀯鎵撳寘鍜屽瓧瀵歸綈<br /><br /></strong>銆銆 姝f槸鍥犱負(fù)緙栬瘧鍣ㄤ細(xì)瀵圭粨鏋勮繘琛屾墦鍖咃紝鎵浠ヤ笉鍚岃綆楁満涓婂瓧闀跨殑鍙樺寲錛岃繕瀵艱嚧浜?jiǎn)鍙︿竴涓棶棰樸侰緙栬瘧鍣ㄥ湪瀛?word)鐨勮竟鐣屼笂瀵歸綈瀛楅暱錛屽綋鍏鋒湁涓涓瓧闀跨殑鏁版嵁鍚庨潰绱ф帴鐫涓涓緝?yōu)畯鐨勬暟鎹椨灱寴q欑鏂規(guī)硶浼?xì)漶旂敓鍐呭瓨绌壕~猴紙涓嶈繃涔熸湁渚嬪錛屾瘮濡傝褰撴湁瓚沖澶氱殑灝忔暟鎹垰濂藉彲浠ュ~鍏呬竴涓瓧鏃訛級(jí)銆?br /><br />銆銆 涓浜涜仾鏄庣殑紼嬪簭鍛樺湪澹版槑鑱斿悎鏃訛紝寰(xiàn)寰(xiàn)鍦ㄥ叾涓細(xì)甯︽湁涓や釜鎴栨洿澶氱殑緇撴瀯錛屽叾涓竴涓粨鏋勫垰濂藉~鍏呰仈鍚堬紝鍙︿竴涓垯鍙互鐢ㄦ潵浠庝笉鍚岀殑瑙掑害鏉ョ湅寰呰繖涓仈鍚堬紝鍙傝渚?(a)銆傚亣璁捐繖孌典唬鐮佹槸涓?6浣嶅瓧闀跨殑璁$畻鏈烘墍鍐欙紝int涓?6浣嶏紝long涓?2浣嶏紝閭d箞瀛樺彇榪欎釜緇撴瀯鐨勪唬鐮佸皢浼?xì)寰楀埌姝e父鐨勬槧灏勫叧绯诲Q堝鍥?錛夛紝鑰屼緥3(b)涓殑浠g爜涔熶細(xì)鎸夐鏈熺殑閭f牱宸ヤ綔銆傚彲鏄紝濡傛灉榪欐浠g爜涓鏃︾Щ妞嶅埌鍙︿竴鍙板叿鏈?2浣嶅瓧闀跨殑璁$畻鏈轟笂鏃訛紝鏄犲皠鍏崇郴灝辨敼鍙樹(shù)簡(jiǎn)銆傚鏋滄柊璁$畻鏈轟笂鐨勭紪璇戝櫒鍏佽浣犱嬌鐢?6浣嶇殑int錛岄偅涔堝瓧鐨勫榻愬氨浼?xì)鍍忓?鎵紺轟簡(jiǎn)錛屾垨鑰呭鏋滅紪璇戝櫒閬靛驚K&R綰﹀畾錛岄偅涔坕nt灝嗕細(xì)鍜屼竴涓瓧錛?2姣旂壒錛変竴鏍烽暱錛屽榻愬氨濡傚浘3鎵紺猴紝鍦ㄤ換涓鎯呭喌涓嬶紝榪欓兘灝嗗鑷撮棶棰樸?br /><br /><table width="90%" align="center" border="0"><tbody><tr><td><div align="center"><img src="http://dev.yesky.com/imagelist/05/11/s1w5hkl49xdt.GIF" border="0" /><br /><img src="http://dev.yesky.com/imagelist/05/11/50e62q83lvi5.GIF" border="0" /><br /><img src="http://dev.yesky.com/imagelist/05/11/zn99pw345649.GIF" border="0" /></div></td></tr></tbody></table><br />銆銆渚?錛氱粨鏋勬墦鍖呭拰瀛楀榻?br /><br />銆銆(a)<br /><br /><table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1"><tbody><tr><td>union parse_hdr {<br />銆struct hdr {<br />銆銆char data1;<br />銆銆char data2;<br />銆銆int data3;<br />銆銆int data4;<br />} hdr;<br />struct tkn {<br />銆int class;<br />銆long tag;<br />} tkn;<br />} parse_item;</td></tr></tbody></table><br />銆銆(b)<br /><br /><table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1"><tbody><tr><td>char *ptr = msgbuf;<br /><br />parse_item.hdr.data1 = *ptr++;<br />parse_item.hdr.data2 = *ptr++;<br />parse_item.hdr.data3 = (*ptr++ << 8 | *ptr++);<br />parse_item.hdr.data4 = (*ptr++ << 8 | *ptr++);<br /><br />if (parse.tkn.class >= MIN_TOKEN_CLASS && parse.tkn.class <= MAX_TOKEN_CLASS) {<br />銆interpret_tag(parse.tkn.tag);<br />}</td></tr></tbody></table><br />銆銆鍦ㄧ涓涓儏鍐典腑錛堝浘2錛夛紝tag鍩熶笉鏄儚鏈熸湜鐨勯偅鏍風(fēng)嚎鎬ф媺闀匡紝鑰岃濉厖浜?jiǎn)涓浜涘瀮鍦俱傝屽湪絎簩涓儏鍐典腑錛堝浘3錛夛紝鏃犺鏄痗lass榪樻槸tag鍩燂紝閮戒笉鍐嶆湁鎰忎箟錛屼袱涓猚har鍊煎洜涓鴻鎵撳寘鎴愪竴涓猧nt錛屾墍浠ヤ篃閮戒笉鍐嶆紜傚啀嬈″己璋冿紝棣栧厛涓嶈鍋囪鏍囧噯鏁版嵁綾誨瀷澶у皬涓鏍鳳紝鍏舵榪樿浜?jiǎn)瑙e畠浠槸鎬庢牱琚槧灝勬垚鍏朵粬鏁版嵁綾誨瀷鐨勶紝榪欐墠鏄功鍐欏彲縐繪浠g爜鐨勬渶濂芥柟娉曘?br /><br />銆銆<b>鏈哄櫒瀵誨潃鐗規(guī)?/b><br /><br />銆銆鍑犱箮鎵鏈夌殑澶勭悊鍣ㄩ兘鍦ㄥ瓧杈圭晫涓婁互瀛椾負(fù)鍗曚綅榪涜瀵誨潃錛岃屼笖閫氬父閮戒負(fù)姝や綔浜?jiǎn)涓浜涗紭鍖栥傚彟鏈変竴浜涚殑澶勭悊鍣ㄥ厑璁稿叾浠栫被鍨嬬殑瀵誨潃錛屽浠ュ瓧鑺備負(fù)鍗曚綅瀵誨潃銆佹垨鍦ㄥ崐涓瓧杈圭晫涓婁互鍗婂瓧涓哄崟浣嶅鍧錛岀敋鑷寵繕鏈変竴浜涘鐞嗗櫒鏈夎緟鍔╃‖浠跺厑璁稿湪濂囨暟杈圭晫涓婂悓鏃朵互瀛楀拰鍗婂瓧榪涜瀵誨潃銆?br /><br />銆銆瀵誨潃鏈哄埗鍦ㄤ笉鍚岃綆楁満涓婁細(xì)鏈夋墍鍙樺寲錛屾渶蹇殑瀵誨潃妯″紡鏄湪瀛楄竟鐣屼笂浠ュ瓧涓哄崟浣嶈繘琛屽鍧銆傚叾浠栨柟寮忕殑瀵誨潃闇瑕佽緟鍔╃‖浠訛紝閫氬父閮戒細(xì)瀵瑰唴瀛樿闂鍔犱簡(jiǎn)涓浜涙椂閽熷懆鏈熴傝岃繖浜涜繃澶氱殑妯″紡鍜岀壒孌婄‖浠剁殑鏀寔錛屾槸涓嶳ISC澶勭悊鍣ㄧ殑璁捐鍒濊》鑳岄亾鑰岄┌鐨勶紝灝辨嬁鍏嬮浄璁$畻鏈烘潵璇達(dá)紝灝卞彧鏀寔鍦ㄥ瓧杈圭晫涓婁互瀛椾負(fù)鍗曚綅榪涜瀵誨潃銆?br /><br />銆銆鍦ㄩ偅浜涗笉鎻愪緵澶氱鏁版嵁綾誨瀷瀵誨潃鏂瑰紡鐨勮綆楁満涓婏紝緙栬瘧鍣ㄥ彲浠ユ彁渚涗竴浜涙ā鎷熴備緥濡傦細(xì)緙栬瘧鍣ㄥ彲浠ョ敓鎴愪竴浜涙寚浠わ紝褰撹鍙栦竴涓瓧鏃訛紝閫氳繃縐諱綅鍜屽睆钄斤紝鏉ユ壘鍒版墍鎯寵鐨勪綅緗紝浠ユ鏉ユā鎷熷湪瀛椾腑鐨勫崐瀛楀鍧錛屼絾榪欎細(xì)闇瑕侀澶栫殑鏃墮挓鍛ㄦ湡錛屽茍涓斾唬鐮佷綋縐細(xì)鏇村ぇ銆?br /><br />銆銆浠庤繖鐐逛笂鏉ヨ錛屼綅鍩熺殑鏁堢巼鏄潪甯鎬綆鐨勶紝鍦ㄤ互浣嶅煙鏉ュ彇鍑轟竴涓瓧鏃訛紝瀹冧滑浜х敓鐨勪唬鐮佷綋縐渶澶с傚綋浣犲瓨鍙栧悓涓涓瓧涓殑鍏朵粬浣嶅煙鏃訛紝鍙堥渶瑕佸鍖呭惈榪欎釜浣嶅煙瀛楃殑鍐呭瓨錛岄噸鏂拌繘琛屼竴閬嶅鍧錛岃繖灝辨槸鍏稿瀷鐨勪互絀洪棿鎹㈡椂闂淬?<br /><br />銆銆褰撳湪璁捐鏁版嵁緇撴瀯鏃訛紝鎴戜滑鎬繪槸鎯崇敤鍙互淇濆瓨鏁版嵁鐨勬渶灝忔暟鎹被鍨嬶紝鏉ヨ揪鍒拌妭鐪佺┖闂寸殑鐩殑銆傛垜浠湁鏃跺皬姘斿緱緇忓父浣跨敤char鍜宻hort錛屾潵瀛樺彇浣嶇壒鍩燂紝榪欏氨鍍忔槸涓轟簡(jiǎn)鑺傜渷涓瑙掗挶錛岃岃姳浜?jiǎn)涓鍏冮挶銆傚偍瀛樼┖闂翠笂鐨勯珮鏁堬紝浼?xì)浠樺嚭鍦ńE嬪簭閫熷害鍜屼綋縐笂闅愯棌鐨勪唬浠楓?br /><br />銆銆璇曟兂浣犲彧涓轟竴涓揣鍑戠粨鏋勫垎閰嶄簡(jiǎn)涓灝忕偣鐨勭┖闂達(dá)紝浣嗗嵈浜х敓浜?jiǎn)澶ч噺鐨勪唬鐮佹潵瀛樺彇缁撴瀯涓殑鍩熷Q岃屼笖榪欐浠g爜榪樻槸緇忓父鎵ц鐨勶紝閭d箞錛屼細(xì)鍥犱負(fù)闈炲瓧瀵誨潃錛岃屽鑷翠唬鐮佽繍琛岀紦鎱紝鑰屼笖鍏呮枼浜?jiǎn)澶ч噺鐢ㄤ簬鎻愬彇鍩熺殑浠g爜锛尳E嬪簭浣撶Н涔熷洜姝ゅ澶с傝繖浜涢澶栦唬鐮佹墍鍗犵殑絀洪棿錛屼細(xì)璁╀綘鍓嶉潰涓鴻妭鐪佺┖闂存墍鍋氱殑鍔姏浠樹(shù)箣涓滄祦銆?br /><br />銆銆鍦ㄩ珮綰ф暟鎹粨鏋勪腑錛岀壒瀹氱殑姣旂壒瀹氫綅宸蹭笉鏄繀欏葷殑浜?jiǎn)锛屽簲鍦ㄦ墍鏈夌殑鍩熶腑閮戒嬌鐢ㄥ瓧(word)錛岃屼笉瑕佹搷蹇?jī)瀹冧滑鎵鍗犵敤鐨勭┖闂淬傜壒鍒槸鍦ㄧ▼搴忔煇浜涗緷璧栦簬鏈哄櫒鐨勯儴鍒嗭紝搴旇涓哄瓧鍑嗗涓涓猼ypedef錛屽涓嬶細(xì)<br /><br /><table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1"><tbody><tr><td>/*鍦ㄨ繖鍙拌綆楁満涓婏紝int鏄竴涓瓧闀?/<br />typedef word int;</td></tr></tbody></table><br />銆銆鍦ㄩ珮綰х粨鏋勪腑錛屽鎵鏈夊煙閮戒嬌鐢ㄥ瓧鏈夊涓嬪ソ澶勶細(xì)<br /><br />銆銆a.. 瀵瑰叾浠栬綆楁満鏋舵瀯鐨勫彲縐繪鎬?<br /><br />銆銆b.. 緙栬瘧鍣ㄥ彲鑳界敓鎴愭渶蹇殑浠g爜 <br /><br />銆銆c.. 澶勭悊鍣ㄥ彲鑳芥渶蹇湴璁塊棶鍒版墍闇鍐呭瓨 <br /><br />銆銆d.. 緇濆娌℃湁緇撴瀯瀵歸綈鐨勬剰澶栧彂鐢?br /><br />銆銆蹇呴』涔熸壙璁わ紝鍦ㄦ煇浜涙椂鍊欙紝鏄笉鑳藉仛鍒板叏閮ㄤ嬌鐢ㄥ瓧鐨勩備緥濡傦紝鏈変竴涓緢澶х殑緇撴瀯錛屼絾涓嶄細(xì)琚粡甯稿瓨鍙栵紝濡傛灉浣跨敤浜?jiǎn)鏁板崈涓瓧鐨勮瘽锛屼綋绉癁畣浼?xì)澧炲ぇ25%錛屼絾浣跨敤瀛楅氬父浼?xì)鑺傜渷绌洪棿銆佹彁楂樻墽琛岄熷害錛岃屼笖鏇村叿縐繪鎬с?br /><br />銆銆<b>浠ヤ笅鏄垜浠殑緇撹錛?/b><br /><br />銆銆涔﹀啓璺ㄥ鉤鍙扮Щ妞嶇殑浠g爜錛屽叾瀹炴槸浠剁畝鍗曠殑浜嬫儏銆傛渶鍩烘湰鐨勮鍒欐槸錛屽敖鍙兘鍦伴殣钘忔満鍣ㄥ瓧闀跨殑緇嗚妭錛岀敤闈炲父綺劇‘鐨勬暟鎹厓绱犱綅澶у皬鏉ユ槧灝勭墿鐞嗘暟鎹粨鏋勩傛垨鑰呭儚鍓嶉潰鎵寤鴻鐨勶紝涓洪珮綰х紪紼嬩嬌鐢ㄩ珮綰ф暟鎹粨鏋勶紝鑰屼綆綰х紪紼嬩嬌鐢ㄤ綆綰ф暟鎹粨鏋勶紝褰撻槓鏄庨珮綰ф暟鎹粨鏋勬椂錛屽鏍囧噯C鐨勬爣閲忕被鍨嬶紝涓嶈浣滀換浣曞亣璁?img src ="http://m.shnenglu.com/zjj2816/aggbug/9539.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zjj2816/" target="_blank">浜曟硥</a> 2006-07-07 13:51 <a href="http://m.shnenglu.com/zjj2816/archive/2006/07/07/9539.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C璇█緙栫▼---鎬ц兘浼樺寲http://m.shnenglu.com/zjj2816/archive/2006/07/07/9535.html浜曟硥浜曟硥Fri, 07 Jul 2006 05:16:00 GMThttp://m.shnenglu.com/zjj2816/archive/2006/07/07/9535.htmlhttp://m.shnenglu.com/zjj2816/comments/9535.htmlhttp://m.shnenglu.com/zjj2816/archive/2006/07/07/9535.html#Feedback0http://m.shnenglu.com/zjj2816/comments/commentRss/9535.htmlhttp://m.shnenglu.com/zjj2816/services/trackbacks/9535.html浣跨敤瀹忓畾涔?br />
銆銆鍦–璇█涓紝瀹忔槸浜х敓鍐呭祵浠g爜鐨勫敮涓鏂規(guī)硶銆傚浜庡祵鍏ュ紡緋葷粺鑰岃█錛屼負(fù)浜?jiǎn)鑳借緫謭版ц兘瑕佹眰錛屽畯鏄竴縐嶅緢濂界殑浠f浛鍑芥暟鐨勬柟娉曘?br />
銆銆鍐欎竴涓?鏍囧噯"瀹廙IN 錛岃繖涓畯杈撳叆涓や釜鍙傛暟騫惰繑鍥炶緝?yōu)畯鐨勪竴涓細(xì)

銆銆閿欒鍋氭硶錛?br />
#define MIN(A,B) 銆( A <= B ? A : B )

銆銆姝g‘鍋氭硶錛?br />
#define MIN(A,B) 錛堬紙A錛?lt;= (B) ? (A) : (B) )

銆銆瀵逛簬瀹忥紝鎴戜滑闇瑕佺煡閬撲笁鐐癸細(xì)

銆銆(1)瀹忓畾涔?鍍?鍑芥暟錛?br />
銆銆(2)瀹忓畾涔変笉鏄嚱鏁幫紝鍥犺岄渶瑕佹嫭涓婃墍鏈?鍙傛暟"錛?br />
銆銆(3)瀹忓畾涔夊彲鑳戒駭鐢熷壇浣滅敤銆?br />
銆銆涓嬮潰鐨勪唬鐮侊細(xì)

least = MIN(*p++, b);

銆銆灝嗚鏇挎崲涓猴細(xì)

( (*p++) <= (b) ?(*p++):(b) )

銆銆鍙戠敓鐨勪簨鎯呮棤娉曢鏂欍?

銆銆鍥犺屼笉瑕佺粰瀹忓畾涔変紶鍏ユ湁鍓綔鐢ㄧ殑"鍙傛暟"銆?br />
銆銆浣跨敤瀵勫瓨鍣ㄥ彉閲?/b>

銆銆褰撳涓涓彉閲忛綣佽璇誨啓鏃訛紝闇瑕佸弽澶嶈闂唴瀛橈紝浠庤岃姳璐瑰ぇ閲忕殑瀛樺彇鏃墮棿銆備負(fù)姝わ紝C璇█鎻愪緵浜?jiǎn)涓縐嶅彉閲忥紝鍗沖瘎瀛樺櫒鍙橀噺銆傝繖縐嶅彉閲忓瓨鏀懼湪CPU鐨勫瘎瀛樺櫒涓紝浣跨敤鏃訛紝涓嶉渶瑕佽闂唴瀛橈紝鑰岀洿鎺ヤ粠瀵勫瓨鍣ㄤ腑璇誨啓錛屼粠鑰屾彁楂樻晥鐜囥傚瘎瀛樺櫒鍙橀噺鐨勮鏄庣鏄痳egister銆傚浜庡驚鐜鏁拌緝澶氱殑寰幆鎺у埗鍙橀噺鍙?qiáng)弩@鐜綋鍐呭弽澶嶄嬌鐢ㄧ殑鍙橀噺鍧囧彲瀹氫箟涓哄瘎瀛樺櫒鍙橀噺錛岃屽驚鐜鏁版槸搴旂敤瀵勫瓨鍣ㄥ彉閲忕殑鏈濂藉欓夎呫?br />
銆銆(1) 鍙湁灞閮ㄨ嚜鍔ㄥ彉閲忓拰褰㈠弬鎵嶅彲浠ュ畾涔変負(fù)瀵勫瓨鍣ㄥ彉閲忋傚洜涓哄瘎瀛樺櫒鍙橀噺灞炰簬鍔ㄦ佸瓨鍌ㄦ柟寮忥紝鍑¢渶瑕侀噰鐢ㄩ潤(rùn)鎬佸瓨鍌ㄦ柟寮忕殑閲忛兘涓嶈兘瀹氫箟涓哄瘎瀛樺櫒鍙橀噺錛屽寘鎷細(xì)妯″潡闂村叏灞鍙橀噺銆佹ā鍧楀唴鍏ㄥ眬鍙橀噺銆佸眬閮╯tatic鍙橀噺錛?br />
銆銆(2) register鏄竴涓?寤鴻"鍨嬪叧閿瓧錛屾剰鎸囩▼搴忓緩璁鍙橀噺鏀懼湪瀵勫瓨鍣ㄤ腑錛屼絾鏈緇堣鍙橀噺鍙兘鍥犱負(fù)鏉′歡涓嶆弧瓚沖茍鏈垚涓哄瘎瀛樺櫒鍙橀噺錛岃屾槸琚斁鍦ㄤ簡(jiǎn)瀛樺偍鍣ㄤ腑錛屼絾緙栬瘧鍣ㄤ腑騫朵笉鎶ラ敊錛堝湪C++璇█涓湁鍙︿竴涓?寤鴻"鍨嬪叧閿瓧錛歩nline錛夈?br />
銆銆涓嬮潰鏄竴涓噰鐢ㄥ瘎瀛樺櫒鍙橀噺鐨勪緥瀛愶細(xì)

/* 姹?+2+3+鈥?+n鐨勫?*/
WORD Addition(BYTE n)
{
銆register i,s=0;
銆for(i=1;i<=n;i++)
銆{
銆銆s=s+i;
銆}
銆return s;
}

銆銆鏈▼搴忓驚鐜痭嬈★紝i鍜宻閮借棰戠箒浣跨敤錛屽洜姝ゅ彲瀹氫箟涓哄瘎瀛樺櫒鍙橀噺銆?br />
銆銆鍐呭祵姹囩紪

銆銆紼嬪簭涓鏃墮棿瑕佹眰鑻涘埢鐨勯儴鍒嗗彲浠ョ敤鍐呭祵姹囩紪鏉ラ噸鍐欙紝浠ュ甫鏉ラ熷害涓婄殑鏄捐憲鎻愰珮銆備絾鏄紝寮鍙戝拰嫻嬭瘯姹囩紪浠g爜鏄竴浠惰緵鑻︾殑宸ヤ綔錛屽畠?yōu)畣鑺辫匆?guī)洿闀跨殑鏃墮棿錛屽洜鑰岃鎱庨噸閫夋嫨瑕佺敤姹囩紪鐨勯儴鍒嗐?br />
銆銆鍦ㄧ▼搴忎腑錛屽瓨鍦ㄤ竴涓?0-20鍘熷垯錛屽嵆20%鐨勭▼搴忔秷鑰椾簡(jiǎn)80%鐨勮繍琛屾椂闂達(dá)紝鍥犺屾垜浠鏀硅繘鏁堢巼錛屾渶涓昏鏄冭檻鏀硅繘閭?0%鐨勪唬鐮併?br />
銆銆宓屽叆寮廋紼嬪簭涓富瑕佷嬌鐢ㄥ湪綰挎眹緙栵紝鍗沖湪C紼嬪簭涓洿鎺ユ彃鍏asm{ }鍐呭祵姹囩紪璇彞錛?br />
/* 鎶婁袱涓緭鍏ュ弬鏁扮殑鍊肩浉鍔狅紝緇撴灉瀛樻斁鍒板彟澶栦竴涓叏灞鍙橀噺涓?*/
int result;
void Add(long a, long *b)
{
銆_asm
銆{
銆銆MOV AX, a
銆銆MOV BX, b
銆銆ADD AX, [BX]
銆銆MOV result, AX
銆}
}

銆銆鍒╃敤紜歡鐗規(guī)?/b>

銆銆棣栧厛瑕佹槑鐧紺PU瀵瑰悇縐嶅瓨鍌ㄥ櫒鐨勮闂熷害錛屽熀鏈笂鏄細(xì)

CPU鍐呴儴RAM銆>銆澶栭儴鍚屾RAM銆>銆澶栭儴寮傛RAM銆>銆FLASH/ROM

銆銆瀵逛簬紼嬪簭浠g爜錛屽凡緇忚鐑у綍鍦‵LASH鎴朢OM涓紝鎴戜滑鍙互璁〤PU鐩存帴浠庡叾涓鍙栦唬鐮佹墽琛岋紝浣嗛氬父榪欎笉鏄竴涓ソ鍔炴硶錛屾垜浠渶濂藉湪緋葷粺鍚姩鍚庡皢FLASH鎴朢OM涓殑鐩爣浠g爜鎷瘋礉鍏AM涓悗鍐嶆墽琛屼互鎻愰珮鍙栨寚浠ら熷害錛?br />
銆銆瀵逛簬UART絳夎澶囷紝鍏跺唴閮ㄦ湁涓瀹氬閲忕殑鎺ユ敹BUFFER錛屾垜浠簲灝介噺鍦˙UFFER琚崰婊″悗鍐嶅悜CPU鎻愬嚭涓柇銆備緥濡傝綆楁満緇堢鍦ㄥ悜鐩爣鏈洪氳繃RS-232浼犻掓暟鎹椂錛屼笉瀹滆緗甎ART鍙帴鏀跺埌涓涓狟YTE灝卞悜CPU鎻愪腑鏂紝浠庤屾棤璋撴氮璐逛腑鏂鐞嗘椂闂達(dá)紱

銆銆濡傛灉瀵規(guī)煇璁懼鑳介噰鍙朌MA鏂瑰紡璇誨彇錛屽氨閲囩敤DMA璇誨彇錛孌MA璇誨彇鏂瑰紡鍦ㄨ鍙栫洰鏍囦腑鍖呭惈鐨勫瓨鍌ㄤ俊鎭緝澶ф椂鏁堢巼杈冮珮錛屽叾鏁版嵁浼犺緭鐨勫熀鏈崟浣嶆槸鍧楋紝鑰屾墍浼犺緭鐨勬暟鎹槸浠庤澶囩洿鎺ラ佸叆鍐呭瓨鐨勶紙鎴栬呯浉鍙嶏級(jí)銆侱MA鏂瑰紡杈冧箣涓柇椹卞姩鏂瑰紡錛屽噺灝戜簡(jiǎn)CPU 瀵瑰璁劇殑騫查錛岃繘涓姝ユ彁楂樹(shù)簡(jiǎn)CPU涓庡璁劇殑騫惰鎿嶄綔紼嬪害銆?br />
銆銆媧葷敤浣嶆搷浣?/b>

銆銆浣跨敤C璇█鐨勪綅鎿嶄綔鍙互鍑忓皯闄ゆ硶鍜屽彇妯$殑榪愮畻銆傚湪璁$畻鏈虹▼搴忎腑鏁版嵁鐨勪綅鏄彲浠ユ搷浣滅殑鏈灝忔暟鎹崟浣嶏紝鐞嗚涓婂彲浠ョ敤"浣嶈繍綆?鏉ュ畬鎴愭墍鏈夌殑榪愮畻鍜屾搷浣滐紝鍥犺岋紝鐏墊椿鐨勪綅鎿嶄綔鍙互鏈夋晥鍦版彁楂樼▼搴忚繍琛岀殑鏁堢巼銆備婦渚嬪涓嬶細(xì)

/* 鏂規(guī)硶1 */
int i,j;
i = 879 / 16;
j = 562 % 32;
/* 鏂規(guī)硶2 */
int i,j;
i = 879 >> 4;
j = 562 - (562 >> 5 << 5);

銆銆瀵逛簬浠?鐨勬寚鏁版鏂逛負(fù)"*"銆?/"鎴?%"鍥犲瓙鐨勬暟瀛﹁繍綆楋紝杞寲涓虹Щ浣嶈繍綆?<< >>"閫氬父鍙互鎻愰珮綆楁硶鏁堢巼銆傚洜涓轟箻闄よ繍綆楁寚浠ゅ懆鏈熼氬父姣旂Щ浣嶈繍綆楀ぇ銆?br />
銆銆C璇█浣嶈繍綆楅櫎浜?jiǎn)鍙互鎻愰珮杩惤帡鏁堢巼澶栧Q屽湪宓屽叆寮忕郴緇熺殑緙栫▼涓紝瀹冪殑鍙︿竴涓渶鍏稿瀷鐨勫簲鐢紝鑰屼笖鍗佸垎騫挎硾鍦版鍦ㄨ浣跨敤鐫鐨勬槸浣嶉棿鐨勪笌錛?amp;錛夈佹垨錛坾錛夈侀潪錛垀錛夋搷浣滐紝榪欒窡宓屽叆寮忕郴緇熺殑緙栫▼鐗圭偣鏈夊緢澶у叧緋匯傛垜浠氬父瑕佸紜歡瀵勫瓨鍣ㄨ繘琛屼綅璁劇疆錛岃濡傦紝鎴戜滑閫氳繃灝咥M186ER鍨?0186澶勭悊鍣ㄧ殑涓柇灞忚斀鎺у埗瀵勫瓨鍣ㄧ殑絎綆6浣嶈緗負(fù)0錛堝紑涓柇2錛夛紝鏈閫氱敤鐨勫仛娉曟槸錛?br />
#define INT_I2_MASK 0x0040
wTemp = inword(INT_MASK);
outword(INT_MASK, wTemp &~INT_I2_MASK);

銆銆鑰屽皢璇ヤ綅璁劇疆涓?鐨勫仛娉曟槸錛?br />
#define INT_I2_MASK 0x0040
wTemp = inword(INT_MASK);
outword(INT_MASK, wTemp | INT_I2_MASK);

銆銆鍒ゆ柇璇ヤ綅鏄惁涓?鐨勫仛娉曟槸錛?br />
#define INT_I2_MASK 0x0040
wTemp = inword(INT_MASK);
if(wTemp & INT_I2_MASK)
{
鈥?/* 璇ヤ綅涓? */
}

銆銆涓婅堪鏂規(guī)硶鍦ㄥ祵鍏ュ紡緋葷粺鐨勭紪紼嬩腑鏄潪甯稿父瑙佺殑錛屾垜浠渶瑕佺墷鍥烘帉鎻°?

銆銆鎬葷粨

銆銆鍦ㄦц兘浼樺寲鏂歸潰姘歌繙娉ㄦ剰80-20鍑嗗錛屼笉瑕佷紭鍖栫▼搴忎腑寮閿涓嶅ぇ鐨勯偅80%錛岃繖鏄姵鑰屾棤鍔熺殑銆?br />
銆銆瀹忓畾涔夋槸C璇█涓疄鐜扮被浼煎嚱鏁板姛鑳借屽張涓嶅叿鍑芥暟璋冪敤鍜岃繑鍥炲紑閿鐨勮緝濂芥柟娉曪紝浣嗗畯鍦ㄦ湰璐ㄤ笂涓嶆槸鍑芥暟錛屽洜鑰岃闃叉瀹忓睍寮鍚庡嚭鐜頒笉鍙鏂欑殑緇撴灉錛屽瀹忕殑瀹氫箟鍜屼嬌鐢ㄨ鎱庤屽涔嬨傚緢閬楁喚錛屾爣鍑咰鑷充粖娌℃湁鍖呮嫭C++涓璱nline鍑芥暟鐨勫姛鑳斤紝inline鍑芥暟鍏煎叿鏃犺皟鐢ㄥ紑閿鍜屽畨鍏ㄧ殑浼樼偣銆?br />
銆銆浣跨敤瀵勫瓨鍣ㄥ彉閲忋佸唴宓屾眹緙栧拰媧葷敤浣嶆搷浣滀篃鏄彁楂樼▼搴忔晥鐜囩殑鏈夋晥鏂規(guī)硶銆?br />
銆銆闄や簡(jiǎn)緙栫▼涓婄殑鎶宸у錛屼負(fù)鎻愰珮緋葷粺鐨勮繍琛屾晥鐜囷紝鎴戜滑閫氬父涔熼渶瑕佹渶澶у彲鑳藉湴鍒╃敤鍚勭紜歡璁懼鑷韓鐨勭壒鐐規(guī)潵鍑忓皬鍏惰繍杞紑閿錛屼緥濡傚噺灝忎腑鏂鏁般佸埄鐢―MA浼犺緭鏂瑰紡絳夈?

浜曟硥 2006-07-07 13:16 鍙戣〃璇勮
]]>
c# 鍒?chttp://m.shnenglu.com/zjj2816/archive/2006/06/26/9025.html浜曟硥浜曟硥Mon, 26 Jun 2006 10:41:00 GMThttp://m.shnenglu.com/zjj2816/archive/2006/06/26/9025.htmlhttp://m.shnenglu.com/zjj2816/comments/9025.htmlhttp://m.shnenglu.com/zjj2816/archive/2006/06/26/9025.html#Feedback0http://m.shnenglu.com/zjj2816/comments/commentRss/9025.htmlhttp://m.shnenglu.com/zjj2816/services/trackbacks/9025.html1.鍙互綆鍗曠殑璁や負(fù) 涓涓?h 鏂囦歡瀵瑰簲涓灞?br />2.鐢╯tatic鍙橀噺錛屽姞鍏ㄥ眬鍑芥暟 鏇夸唬 鍏ㄥ眬鍙橀噺錛屾ā浠垮睘鎬ф蹇點(diǎn)?br />3.瀹忕殑浣滅敤 瀹炵幇榛樿鍙傛暟錛屽父閲忥紝涓庘?#鈥濊繛鎺ュ瓧絎︿覆鎿嶄綔絎﹀疄鐜板姩鎬佸悕縐?br />4.寮哄ぇ鐨勪綅鎿嶄綔
5.鍔ㄦ佸唴瀛樺垎閰?br />6.鍑芥暟鎸囬拡錛屽洖璋冩満鍒訛紝浜嬩歡鏈哄埗錛屾秷鎭満鍒?/p>

浜曟硥 2006-06-26 18:41 鍙戣〃璇勮
]]>
C璇█涓殑闈㈠悜瀵硅薄http://m.shnenglu.com/zjj2816/archive/2006/06/26/9024.html浜曟硥浜曟硥Mon, 26 Jun 2006 10:31:00 GMThttp://m.shnenglu.com/zjj2816/archive/2006/06/26/9024.htmlhttp://m.shnenglu.com/zjj2816/comments/9024.htmlhttp://m.shnenglu.com/zjj2816/archive/2006/06/26/9024.html#Feedback0http://m.shnenglu.com/zjj2816/comments/commentRss/9024.htmlhttp://m.shnenglu.com/zjj2816/services/trackbacks/9024.html


涓銆?闈㈠悜瀵硅薄鎬濇兂鐨勭洰鐨勬槸妗嗘灦鍖栵紝鎵嬫鏄娊璞?br />
鐩鎬俊寰堝浜洪兘鏄庣櫧闈㈠悜瀵硅薄璁蹭簡(jiǎn)浠涔堬細(xì)綾伙紝鎶借薄綾伙紝緇ф壙錛屽鎬併備絾鏄槸浠涔堝師鍥犱績(jī)浣胯繖浜涙蹇電殑浜х敓鍛紵

鎵撲釜姣旀柟璇達(dá)細(xì)浣犲幓涔版樉紺哄櫒錛岀劧鑰屾樉紺哄櫒鐨勫搧鐗屾牱寮忔槸澶氱澶氭牱鐨勶紝浣犲湪涔扮殑榪囩▼涓彂鐢熺殑浜嬫儏涔熸槸涓嶅彲棰勬祴鐨勩傚浜庤繖鏍風(fēng)殑浜嬫儏錛屾垜浠湪紼嬪簭璇█涓浣曞幓鎻忚堪鍛€傞潰鍚戝璞$殑鎬濇兂灝辨槸涓轟簡(jiǎn)瑙e喅榪欐牱鐨勯棶棰樸傜紪鍐欎竴涓▼搴忥紙鐢氳嚦璇存槸涓涓伐紼嬶級(jí)錛屼粠鏃犲埌鐢ㄦ槸鍥伴毦鐨勶紝浠庢湁鍒頒赴瀵屾槸鏇村姞鍥伴毦鐨勩傞潰鍚戝璞″皢紼嬪簭鐨勫悇涓涓哄寲涓哄璞★紝鑰屽張鐢ㄦ娊璞$殑鍔炴硶灝嗚繖浜涘璞″綊綾伙紙鎶借薄錛夛紝浠庤屽皢閿欑患澶嶆潅鐨勪簨鎯呯畝鍖栦負(fù)鍑犱釜涓昏鐨勬湁鏈虹粍鍚堬紙妗嗘灦鍖栵級(jí)銆?br />
鍏跺疄鎴戜滑鐨勮韓杈瑰緢澶氫笢瑗塊兘鏄繖鏍風(fēng)粍鎴愮殑錛氭瘮濡傝鐢?shù)鑴戝Q氱數(shù)鑴戞槸鐢變富鏉匡紝CPU鍔犱笂鍚勭鍗$粍鎴愮殑銆傝繖灝辨槸涓涓鏋跺寲銆傝屽拷鐣ヤ笉鍚岀殑CPU錛屼笉鍚岀殑涓繪澘錛屼笉鍚岀殑澹板崱錛岀綉鍗★紝鏄懼崱鐨勫尯鍒紝榪欏氨鏄娊璞°傚啀姣斿璇寸幇鍦ㄧ殑鏁欒偛緗戯細(xì)鏄敱涓繪牳蹇?jī)鑺傜偣锛?xì)娓呭崕錛屽寳澶э紝鍖楅偖絳夊嚑涓紝鐒跺悗鏄悇涓瓙鑺傜偣錛屼緷嬈$粍鎴愪簡(jiǎn)鏁翠釜鏁欒偛緗戠綉緇溿?br />
鎵浠ユ垜瑙夊緱闈㈠悜瀵硅薄鐨勭紪紼嬫濇兂灝辨槸錛氫竴涓ぇ鍨嬪伐紼嬫槸鍒嗗眰嬈$粨鏋勭殑錛屾瘡灞傚張鐢辨娊璞$殑緇撴瀯榪炴帴涓烘暣浣擄紙妗嗘灦鍖栵級(jí)錛屽悇涓娊璞$粨鏋勪箣闂存槸褰兼鐙珛鐨勶紝鍙互鐙珛榪涘寲錛堢戶(hù)鎵匡紝澶氭侊級(jí)銆傚眰嬈′箣闂達(dá)紝緇撴瀯涔嬮棿鍚勬湁緇熶竴鐨勯氳鏂瑰紡錛堥氬父鏄秷鎭紝浜嬩歡鏈哄埗錛夈?br />
浜屻?浠ュ墠 C 璇█緙栫▼涓父鐢ㄧ殑鈥滈潰鍚戝璞♀濇柟娉?br />
鍏跺疄C璇█璇炵敓浠ユ潵錛屼漢浠氨鎯充簡(jiǎn)寰堝鍔炴硶鏉ヤ綋鐜扳滈潰鍚戝璞♀濈殑鎬濇兂銆備笅闈㈠氨鏉ヨ璇存垜鎵鐭ラ亾鐨勬柟娉曘傚厛璇翠竴浜涘ぇ瀹剁啛鎮(zhèn)夌殑涓滀笢錛屾參鎱㈠啀璁茶寮傜殑銆傚懙鍛?br />
1錛?瀹忓畾涔夛細(xì)

鏈夌殑浜轟笉紱佽闂紝瀹忓畾涔夋庝箞鎵埌榪欓噷鏉ヤ簡(jiǎn)錛屾垜浠彲浠ュ厛鐪嬩竴涓畝鍗曠殑渚嬪瓙錛?br />
錛僤efine MacroFunction Afunction

鐒跺悗鍦ㄧ▼搴忛噷闈綘璋冪敤浜?jiǎn)澶ч噺鐨凙Function錛屼絾鏄湁涓澶╋紝浣犵獊鐒跺彂鐜頒綘瑕佺敤BFunction浜?jiǎn)锛屽Q堜笉榪嘇Function鍙堜笉鑳戒笉瑕侊紝寰堟湁鍙兘浣犱互鍚庤繕瑕佽皟鐢級(jí)錛岃繖涓椂鍊欙紝浣犲氨鍙互錛僤efine MacroFunction Bfunction鏉ヨ揪鍒拌繖鏍風(fēng)殑鐩殑銆?br />
褰撶劧錛屼笉寰椾笉璇磋繖鏍風(fēng)殑鍔炴硶鏄痶oo simple錛宻ometime na茂ve鐨勶紝鍥犱負(fù)涓涓緢婊戠ń鐨勯棶棰樻槸濡傛灉鎴戜竴鑸鏀逛負(fù)BFunction錛屼竴鍗婁笉鍙樻庝箞鍔烇紵 閭e氨鍙ソ鏌ユ壘鏇挎崲浜?jiǎn)銆?br />
2錛?闈?rùn)鎬佺殑鍏ュ彛鍑芥暟錛屼繚璇佸嚱鏁板悕鐩稿悓錛屽埄鐢ㄦ爣蹇椾綅璋冪敤瀛愬嚱鏁幫細(xì)

榪欐牱鐨勫吀鍨嬪簲鐢ㄥ緢澶氾紝姣斿璇寸綉鍗¢┍鍔ㄩ噷闈㈡湁涓涓叆鍙e嚱鏁癗ilan錛坕nt FunctionCode錛孭ara*錛夈傚叿浣撶殑鍙傛暟鏄粈涔堣涓嶆竻妤氫簡(jiǎn)銆備笉榪嘚iLan鐨勪富浣撴槸榪欐牱鐨勶細(xì)

Long Nilan錛坕nt FunctionCode錛孭ara*錛墈

Switch(FunctionCode){

Case SendPacket: send(鈥?)

Case ReceivePacket: receive(鈥?

鈥?.

}

鍐欏埌榪欓噷澶у鏄庣櫧浠涔堟剰鎬濅簡(jiǎn)鍚с備繚璇佺浉鍚岀殑鍑芥暟鍚嶅氨鏄錛氱綉鍗¢┍鍔ㄦ槸鍜宲NA+鍗忚鏍堜簰榪炵殑錛岄偅涔堝浣曚繚璇乸NA+鍗忚鏍堝拰涓嶅悓鐨勯┍鍔ㄩ兘鍏煎鍛紝涓涓畝鍗曠殑鍔炴硶灝辨槸浠呬粎浣跨敤涓涓叆鍙e嚱鏁般傞氳繃鏀瑰彉濡傛灉鍑芥暟鐨勫弬鏁板鹼紝鏉ヨ皟鐢ㄥ唴閮ㄧ殑鍚勪釜鍑芥暟銆傝繖鏍風(fēng)殑鍋氭硶鏄彲浠ヨ繘鍖栫殑錛氬鏋滀互鍚庢兂璋冪敤鏂扮殑鍑芥暟錛屽鍔犵浉搴旂殑鍑芥暟鍙傛暟鍊煎氨濂戒簡(jiǎn)銆傚鏋滄垜浠皢緗戝崱椹卞姩鍜宲NA+鍗忚鏍堢湅浣滀袱涓眰鐨勮瘽錛屾垜浠彲浠ュ彂鐜幫細(xì)

灞備笌灞備箣闂寸殑浜掕繛鎺ュ彛鏄緢灝忕殑錛堣繖閲屾槸涓涓叆鍙e嚱鏁幫級(jí)錛屼竴鑸槸閲囩敤鍚嶅瓧瑙f瀽鐨勫姙娉曡屼笉鏄叿浣撶殑鍑芥暟璋冪敤錛堝埄鐢‵unctionCode璋冪敤鍑芥暟錛孨ilan浠呬粎瀹炵幇鍚嶅瓧瑙f瀽鐨勫姛鑳斤級(jí) 鈥曗曪紒鎺ュ彛闄愬埗鍜屽悕瀛楄В鏋?br />
鎺ュ彛闄愬埗錛氬眰涓庡眰涔嬮棿浠呬粎鐭ラ亾鏈夐檺鐨勫嚱鏁?br />
鍚嶅瓧瑙f瀽錛氬眰涓庡眰涔嬮棿寤虹珛鍏卞悓鐨勫悕瀛椾笌鍑芥暟鐨勫搴斿叧緋伙紝涔嬮棿鍒╃敤鍚嶅瓧璋冪敤鍔熻兘銆?br />
3錛嶤ALLBACK鍑芥暟銆?br />
鎴戣寰楄繖鏄疌璇█鐨勪竴涓垱涓撅紝铏界劧瀹冨緢綆鍗曪紝灝辮薄濡備綍鎶婇浮铔嬬珫璧鋒潵涓鏍鳳紝浣嗘槸浣犲鏋滄病鎯沖埌鐨勮瘽錛屽樋鍢褲傚鏋滆闈?rùn)鎬佸叆鍙e嚱鏁板疄鐜頒簡(jiǎn)涓涓彲綆$悊鐨勫畯瑙傜殑璇濓紝CallBack灝辨槸瀹炵幇浜?jiǎn)涓涓彲榪涘寲鐨勫井瑙傦細(xì)瀹冧嬌寰椾竴涓嚱鏁板彲浠ュ湪涓嶉噸鏂扮紪璇戠殑鎯呭喌涓嬪疄鐜板姛鑳界殑娣誨姞錛佷絾鏄湪鏈鏈鏃╂湡鐨勬椂鍊欙紝涔熸湁铔浜烘寔鍙嶅鎬佸害錛屽洜涓哄畠鐢ㄤ簡(jiǎn)鍑芥暟鎸囬拡銆傚嚱鏁版寚閽堣櫧鐒剁伒媧伙紝浣嗘槸鐢變簬瀹冭璁塊棶鍐呭瓨?shù)袱娆℃墠鍙互璋冪敤鍒板嚱鏁板Q岀涓嬈¤闂嚱鏁版寚閽堬紝絎簩嬈℃墠鏄湡姝g殑鍑芥暟璋冪敤銆傚畠鐨勬晥鐜囨槸涓嶅鏅氬嚱鏁扮殑銆備絾鏄湪涓涓笉澶嫑鍒葷殑鐜涓嬶紝鍑芥暟璋冪敤鏈韓灝變笉鎬庝箞鑰楁椂錛屽嚱鏁版寚閽堢殑鎬ц兘鍙堜笉鏄壒鍒碂緋曪紝浣跨敤鍑芥暟鎸囬拡鍏跺疄鏄竴涓渶濂界殑閫夋嫨銆備絾鏄嚱鏁版寚閽堥櫎浜?jiǎn)鎬ц兘錛屾渶楹葷儲(chǔ)鐨勫湴鏂瑰氨鏄細(xì)瀵艱嚧紼嬪簭鐨勨滄敮紱葷牬紕庘濄傝瘯鎯籌細(xì)鍦ㄧ▼搴忎腑錛屼綘璇誨埌涓涓嚱鏁版寚閽堢殑鏃跺欙紝濡傛灉浣犳劊鏄笉鐭ラ亾榪欎釜鍑芥暟鎸囬拡鎸囧悜鐨勬槸鍝釜鍑芥暟錛岄偅涓劅瑙夌湡鐨勫緢緋熺硶銆傦紙鍙互鐪嬪悗闈㈢殑鏂囩珷錛岃浣跨敤鍏堣繘鐨勭▼搴忔鏋訛紝閬垮厤榪欐牱鐨勬儏鍐碉級(jí)

涓夈?Event 鍜?Message

鐪嬩簡(jiǎn)涓婇潰鐨勬弿榪幫紝鐩鎬俊澶у澶氬皯鏈変簺鏄庣櫧涓轟粈涔堣浣跨敤Event鍜孧essage浜?jiǎn)銆傚叿浣撶殑鍑芥暟璋冪敤浼?xì)甯︽潵寰堝鐨勯棶棰樺Q堣櫧鐒朵粠鏁堢巼涓婅錛岃繖鏍峰仛鏄緢濂界殑錛夈備負(fù)浜?jiǎn)鎻愰珮绋嬪簭鐨勭亯|椿鎬э紝Event鍜孧essage鐨勫姙娉曚駭鐢熶簡(jiǎn)銆傜敤鍚嶅瓧瑙f瀽鐨勫姙娉曚唬鏇塊氬父鐨勫嚱鏁拌皟鐢紝榪欐牱錛屽鏋滃弻鏂瑰榪欐牱鐨勮В鏋愭槸涓鑷寸殑璇濓紝灝卞彲浠ヨ揪鍒頒竴涓粺涓銆備笉榪嘐vent鍜孧essage鐨勪綔鐢ㄨ繕?shù)笉浠呬粎鏄姝ゃ?br />
Event鍜孧essage榪樻湁寤虹珛榪涚▼闂撮氫俊鐨勫姛鑳姐傝繘紼嬪皢鑷繁鐨勬秷鎭彂緇欌滄帶鍒朵腑蹇?jī)鈥濓紙綆鍗曠殑灝辨槸涓涓秷鎭槦鍒楋紝鍜屼竴涓獁hile寰幆涓嶆柇鐨勫彇娑堟伅闃熷垪鐨勫唴瀹瑰茍鎵ц錛夛紝鎺у埗紼嬪簭寰楀埌娑堟伅錛屽垎鍙戠粰鐩稿簲鐨勮繘紼嬶紝榪欐牱鍏朵粬榪涚▼灝卞彲浠ュ緱鍒拌繖涓秷鎭茍榪涜鍝嶅簲銆?br />
Event鍜孧essage鏄緢鐏墊椿鐨勶紝鍥犱負(fù)浣犲彲浠ラ殢鏃舵坊鍔犳垨鑰呭叧闂竴涓繘紼嬶紝錛堜粎浠呴渶瑕佹坊鍔犲垎鍙戞秷鎭殑鍒楄〃灝卞彲浠ヤ簡(jiǎn)錛塃vent鍜孧essage 浠庣▼搴忓疄鐜頒笂灝嗘垜瑙夊緱鏄竴鏍風(fēng)殑錛屽彧涓嶈繃姒傚康涓嶅悓銆侲vent澶氱敤浜庢寚涓涓姩浣滐紝姣斿紜歡鍙戠敓浜?jiǎn)浠涔堜簨鎯咃紝闇瑕佽皟鐢ㄤ竴涓粈涔堝嚱鏁扮瓑絳夈侻essage澶氱敤浜庢寚涓涓寚紺猴紝姣斿浠涔堢▼搴忓彂鐢熶簡(jiǎn)浠涔堟搷浣滃懡浠ょ瓑絳夈?br />
鍥涖?灝忕粨

鍏跺疄緙栫▼搴忓拰鍐欐枃绔犱竴鏍鳳紝閮芥槸鍏堟湁涓涓彁綰詫紝鐒跺悗鎱㈡參鐨勪赴瀵屻傚厛鎶借薄鍖栧緱鍒扮▼搴忕殑楠ㄦ灦錛岀劧鍚庡啀鑰冭檻鍚勪釜鏂歸潰鐨勫叾浠栧唴瀹癸細(xì)紼嬪簭鏋佺鐨勬椂鍊欎細(xì)鍙戠敓浠涔堥棶棰橈紵紼嬪簭鐨勮繖涓湴鏂圭殑鍔熻兘鐜板湪榪樹(shù)笉瀹屽杽錛屼互鍚庡啀瀹屽杽浼?xì)鏈変粈涔堥棶棰橈紵紼嬪簭鏄笉鏄彲浠ユ墿灞曠殑錛?br />
浜屻佺被妯℃嫙鐨勬ц兘鍒嗘瀽

聽(tīng) 綾繪ā鎷熶腑浣跨敤浜?jiǎn)澶ч噺鐨勫嚱鏁版寚閽堝Q岀粨鏋勪綋絳夌瓑錛屾湁蹇呴』瀵規(guī)榪涜鎬ц兘鍒嗘瀽錛屼互渚胯瀵熻繖鏍風(fēng)殑緇撴瀯瀵圭▼搴忕殑鏁翠綋鎬ц兘鏈変粈涔堢▼搴︾殑褰卞搷銆?br />
銆銆1錛庡嚱鏁拌皟鐢ㄧ殑寮閿

#define COUNTER XX
void testfunc()
{
聽(tīng) int i,k=0;
聽(tīng) for(i=0;i<YY;i++)
}

銆銆鍦ㄦ祴璇曠▼搴忛噷闈紝鎴戜滑浣跨敤鐨勬槸涓涓祴璇曞嚱鏁幫紝鍑芥暟浣撳唴閮ㄥ彲浠ラ氳繃鏀瑰彉YY鐨勫兼潵鏀瑰彉鍑芥暟鐨勮楁椂銆傛祴璇曞姣旀槸 寰幆璋冪敤XX嬈″嚱鏁幫紝鍜屽驚鐜疿X嬈″嚱鏁板唴閮ㄧ殑YY寰幆銆?br />
銆銆緇撴灉鍙戠幇錛屽湪YY瓚沖灝忥紝X瓚沖澶х殑鎯呭喌涓嬶紝鍑芥暟璋冪敤鑰楁椂鎴愪負(fù)浜?jiǎn)涓昏鍘熷洜銆傛墍浠ュ綋涓涓滅畝鍗曗濆姛鑳介渶瑕佲滃弽澶嶁濊皟鐢ㄧ殑鏃跺欙紝灝嗗畠緙栧啓涓哄嚱鏁板皢浼?xì)瀵规ц兘鏈夊獎(jiǎng)鍝嶃傝繖涓椂鍊欏彲浠ヤ嬌鐢ㄥ畯錛屾垨鑰卛nline鍏抽敭瀛椼?br />
銆銆浣嗘槸錛屽疄闄呬笂鎴戣緗甔X錛?0000000錛?鍗冧竾錛夌殑鏃跺欙紝鎵嶅嚭鐜癿s綰у埆鐨勮楁椂錛屽浜庨潪瀹炴椂鎿嶄綔錛圲I絳夌瓑錛夛紝鍗充嬌鏄緢鎱㈢殑cpu錛堝祵鍏ュ紡10M綰у埆鐨勶級(jí)錛屼篃鍙細(xì)鍦╔X錛?0涓囩殑鏃跺欏嚭鐜扮煭鏆傜殑鍑芥暟璋冪敤鑰楁椂錛屾墍浠ュ疄闄呬笂榪欎釜鏄彲浠ュ拷鐣ョ殑銆?br />
銆銆2錛庢櫘閫氬嚱鏁拌皟鐢ㄥ拰鍑芥暟鎸囬拡璋冪敤鐨勫紑閿

void (*tf)();
tf=testfunc;

銆銆嫻嬭瘯紼嬪簭淇敼涓轟竴涓嬌鐢ㄥ嚱鏁拌皟鐢紝涓涓嬌鐢ㄥ嚱鏁版寚閽堣皟鐢ㄣ傛祴璇曞彂鐜板鏃墮棿鍩烘湰娌℃湁浠涔堝獎(jiǎng)鍝嶃傦紙鍦ㄧ涓嬈$紪鍐欑殑鏃跺欙紝鍙戠幇鍦ㄥ嚱鏁拌皟鐢ㄥ嚭鐜拌楁椂鐨勬儏鍐典笅錛圶X錛?浜匡級(jí)錛屽嚱鏁版寚閽堢殑璋冪敤瑕佹參錛坮elease鐗堟湰錛夛紝璋冪敤鑰楁椂350錛?00銆傚悗鏉ユ墠鍙戠幇榪欎釜褰卞搷鏄敱浜庡皢鍙橀噺鐢寵涓哄叏灞鐨勫師鍥狅紝鍏ㄥ眬鍙橀噺鐨勮闂姣斿眬閮ㄥ彉閲忔參寰堝錛夈?br />
銆銆3錛庡嚱鏁版寚閽堝拰鎸囬拡緇撴瀯璁塊棶鐨勫紑閿

struct a {
聽(tīng) void (*tf)();
}

銆銆嫻嬭瘯紼嬪簭淇敼涓轟嬌鐢ㄧ粨鏋勭殑鍑芥暟鎸囬拡錛屾祴璇曞彂鐜板鏃墮棿鍩烘湰娌℃湁浠涔堝獎(jiǎng)鍝嶃傚叾瀹炰嬌鐢ㄧ粨鏋勫茍涓嶄細(xì)浜х敓褰卞搷錛屽洜涓虹粨鏋勭殑璁塊棶鏄浐瀹氬亸縐婚噺鐨勩傛墍浠ョ粨鏋勫彉閲忕殑璁塊棶鍜屾櫘閫氬彉閲忕殑璁塊棶瀵逛簬鏈哄櫒鐮佹潵璇存槸涓鏍風(fēng)殑銆?br />
銆銆嫻嬭瘯緇撹錛氫嬌鐢ㄧ被妯℃嫙鐨勫姙娉曞鎬ц兘涓嶄細(xì)浜х敓澶ぇ鐨勫獎(jiǎng)鍝嶃?br />
涓夈丆璇█鐨勫鎬佸疄鐜?br />
銆銆鐩鎬俊寰堝浜洪兘鐪嬭繃璁捐妯″紡鏂歸潰鐨勪功錛屽ぇ瀹舵湁浠涔堜綋浼?xì)鍛㈠Q烞ridge錛孭roxy錛孎actory榪欎簺璁捐妯″紡閮芥槸鍩轟簬鎶借薄綾葷殑銆備嬌鐢ㄦ娊璞″璞℃槸榪欓噷鐨勪竴涓牳蹇?jī)銆?br />聽(tīng) 聽(tīng)
銆銆鍏跺疄鎴戣寰楁鏋跺寲緙栫▼鐨勪竴涓牳蹇?jī)闂鏄娊璞″Q岀敤鎶借薄鐨勫璞℃瀯寤虹▼搴忕殑涓諱綋妗嗘灦錛岃繖鏄潰鍚戝璞$紪紼嬬殑鏅亶鎬濇兂銆傜敤鎶借薄鏋勫緩楠ㄦ灦錛屽啀鍔犱笂澶氭佸氨褰㈡垚浜?jiǎn)涓涓畬鏁寸殑紼嬪簭銆傜敱浜嶤錛嬶紜璇█鏈韓瀹炵幇浜?jiǎn)鐟?hù)鎵垮拰澶氭侊紝浣跨敤榪欐牱鐨勭紪紼嬬悊蹇碉紙鐞嗗康鍟ユ剰鎬濓紵璺熶釜椋庯紝鍢垮樋錛夊湪C錛嬶紜涓槸鍗佸垎鏅亶鐨勭幇璞★紝鍙互璇碫irtual錛堝鎬侊級(jí)鏄疺C鐨勭伒欖傘?br />
銆銆浣嗘槸錛屼嬌鐢–璇█鐨勬垜浠兘蹇妸榪欎釜澶氭佸繕鍏夊厜浜?jiǎn)銆傛垜甯稿惉瑙佸墠杈堣錛岀被錛熷鎬侊紵鎴戜滑鐢ㄧ殑鏄疌錛屾妸榪欎簺蹇樹(shù)簡(jiǎn)鍚с傚緢涓嶅垢鐨勬槸錛屾垜鏄竴涓浐鎵х殑浜恒傝繖涔堝ソ鐨勪笢瑗匡紝涓哄暐涓嶇敤鍛€傚緢楂樺叴鐨勶紝鍦ㄦ渶榪戠殑涓浜涚函C浠g爜涓紝鎴戠湅瑙佷簡(jiǎn)C涓殑澶氭侊紒涓嬮潰涓斿惉鎴戞參鎱㈤亾鏉ャ?br />
銆銆1. VC涓殑Interface鏄粈涔?br />
銆銆Interface錛氫腑鏂囪В閲婃槸鎺ュ彛錛屽叾瀹炲畠琛ㄧず鐨勬槸涓涓函铏氱被銆備笉榪囨垜鎵瑕佽鐨勬槸錛屽湪VC涓殑Interface鍏跺疄灝辨槸struct錛屾煡鎵綢nterface鐨勫畾涔夛紝浣犲彲浠ュ彂鐜版湁榪欐牱鐨勫畯瀹氫箟錛?br />
聽(tīng) 聽(tīng) #Ifndef Interface
聽(tīng) 聽(tīng) #define Interface struct
聽(tīng) 聽(tīng) #endif

銆銆鑰屼笖錛屽疄闄呬笂鍦╒C涓紝濡傛灉涓涓被鏈塚irtual鐨勫嚱鏁幫紝鍒欑被閲岄潰浼?xì)鏈塿table錛屽畠瀹為檯涓婃槸涓涓櫄鍑芥暟鍒楄〃銆傚疄闄呬笂C錛嬶紜鏄粠C鍙戝睍鑰屾潵鐨勶紝瀹冧笉榪囨槸鍦ㄨ璦綰у埆涓婃敮鎸佷簡(jiǎn)寰堝鏂板姛鑳斤紝鍦–璇█涓紝鎴戜滑涔熷彲浠ヤ嬌鐢ㄨ繖鏍風(fēng)殑鍔熻兘錛屽墠鎻愭槸鎴戜滑涓嶅緱涓嶈嚜宸卞疄鐜般?br />
銆銆2錛嶤涓浣曞疄鐜扮函铏氱被錛堟垜縐板畠涓虹函铏氱粨鏋勶級(jí)

銆銆姣旇緝鍓嶉潰錛岀浉淇″ぇ瀹跺凡緇忚眮鐒跺紑鏈椾簡(jiǎn)銆備嬌鐢╯truct緇勫悎鍑芥暟鎸囬拡灝卞彲浠ュ疄鐜扮函铏氱被銆?br />
銆銆渚嬪瓙錛?br />
聽(tīng) typedef struct {
聽(tīng) 聽(tīng) void (*Foo1)();
聽(tīng) 聽(tīng) char (*Foo2)();
聽(tīng) 聽(tīng) char* (*Foo3)(char* st);
聽(tīng) }
聽(tīng) MyVirtualInterface;
聽(tīng) 聽(tīng)
銆銆榪欐牱鍋囪鎴戜滑鍦ㄤ富浣撴鏋朵腑瑕佷嬌鐢ㄦˉ妯″紡銆傦紙鎴戜滑鐨勪富綾繪槸DoMyAct錛屾帴鍙e叿浣撳疄鐜扮被鏄疉ct1錛孉ct2錛変笅闈㈡垜灝嗕緷嬈′粙緇嶈繖浜涒滅被鈥濄傦紙C涓殑鈥滅被鈥濆湪鍓嶉潰鏈夎鏄庯紝榪欓噷鎹簡(jiǎn)涓涓紝鏄嬌鐢ㄦ棭鏈熺殑鏁扮粍鐨勫姙娉曪級(jí)

銆銆涓葷被DoMyAct錛?涓葷被涓惈鏈塎yVirtualInterface* m_pInterface; 涓葷被鏈変笅鍑芥暟錛?br />
聽(tīng) DoMyAct_SetInterface(MyVirtualInterface* pInterface)
聽(tīng) {
聽(tīng) 聽(tīng) m_pInterface= pInterface;
聽(tīng) }
聽(tīng) DoMyAct_Do()
聽(tīng) {
聽(tīng) 聽(tīng) if(m_pInterface==NULL) return;
聽(tīng) 聽(tīng) m_pInterface->Foo1();
聽(tīng) 聽(tīng) c=m_pInterface->Foo2();
聽(tīng) }

銆銆瀛愮被Act1錛氬疄鐜拌櫄緇撴瀯錛屽惈鏈塎yVirtualInterface st[MAX]; 鏈変互涓嬪嚱鏁幫細(xì)

聽(tīng) MyVirtualInterface* Act1_CreatInterface()
聽(tīng) {
聽(tīng) 聽(tīng) index=FindValid() //瀵硅薄姹犳垨鑰呬嬌鐢∕alloc 錛佸簲璇ョ暀鍦ㄥ闈㈢敵璇鳳紝瀹炰緥鍖?br />聽(tīng) 聽(tīng) if(index==-1) return NULL;
聽(tīng) 聽(tīng) St[index].Foo1=Act1_Foo1; // Act1_Foo1瑕佸湪涓嬮潰鍏蜂綋瀹炵幇
聽(tīng) 聽(tīng) St[index].Foo2=Act1_Foo2;
聽(tīng) 聽(tīng) St[index].Foo3=Act1_Foo3;
聽(tīng) 聽(tīng) Return &st [index];
聽(tīng) }

銆銆瀛愮被Act2鍚屼笂銆?br />
銆銆鍦╩ain涓紝鍋囪鏈変竴涓璞ist銆侺ist涓瓨璐殑鏄疢yVirtualInterface鎸囬拡錛屽垯鏈夛細(xì)

聽(tīng) if( (p= Act1_CreatInterface()) != NULL)
聽(tīng) List_AddObject(&List, p); //Add Al

聽(tīng) While(p=List_GetObject()){
聽(tīng) 聽(tīng) DoMyAct_SetInterface(p);//浣跨敤Interface浠f浛浜?jiǎn)鍘熸潵澶Ы媷骞呯殑Switch Case
聽(tīng) 聽(tīng) DoMyAct_Do();//涓嶈鐞嗕細(xì)鍏蜂綋鐨勪粈涔堟牱鐨勫姩浣滐紝just do it
聽(tīng) }

聽(tīng) FREE ALL

鍥涖佺被妯℃嫙鍜屽鎬?緇ф壙

銆銆鍦ㄩ潰鍚戝璞$殑璇█閲岄潰錛屽嚭鐜頒簡(jiǎn)綾葷殑姒傚康銆傝繖鏄紪紼嬫濇兂鐨勪竴縐嶈繘鍖栥傛墍璋撶被錛氭槸瀵圭壒瀹氭暟鎹殑鐗瑰畾鎿嶄綔鐨勯泦鍚堜綋銆傛墍浠ヨ綾誨寘鍚簡(jiǎn)涓や釜鑼冪暣錛氭暟鎹拰鎿嶄綔銆傝孋璇█涓殑struct浠呬粎鏄暟鎹殑闆嗗悎銆傦紙liyuming1978@163.com)

銆銆1錛庡疄渚嬶細(xì)涓嬮潰鍏堜粠涓涓皬渚嬪瓙鐪嬭搗

#ifndef C_Class
聽(tīng) 聽(tīng) #define C_Class struct
#endif

C_Class A {
聽(tīng) 聽(tīng) C_Class A *A_this;
聽(tīng) 聽(tīng) void (*Foo)(C_Class A *A_this);
聽(tīng) 聽(tīng) int a;
聽(tīng) 聽(tīng) int b;
};

C_Class B{ 聽(tīng) 聽(tīng) 聽(tīng) 聽(tīng) 聽(tīng) //B緇ф壙浜?jiǎn)A
聽(tīng) 聽(tīng) C_Class B *B_this; //欏哄簭寰堥噸瑕?br />聽(tīng) 聽(tīng) void (*Foo)(C_Class B *Bthis); 聽(tīng) 聽(tīng) 聽(tīng) 聽(tīng) //铏氬嚱鏁?br />聽(tīng) 聽(tīng) int a;
聽(tīng) 聽(tīng) int b;

聽(tīng) 聽(tīng) int c;
};


void B_F2(C_Class B *Bthis)
{
聽(tīng) 聽(tīng) printf("It is B_Fun\n");
}

void A_Foo(C_Class A *Athis)
{
聽(tīng) 聽(tīng) printf("It is A.a=%d\n",Athis->a);//鎴栬呰繖閲?br />// 聽(tīng) exit(1);
// 聽(tīng) printf("綰櫄 涓嶅厑璁告墽琛孿n");//鎴栬呰繖閲?br />}

void B_Foo(C_Class B *Bthis)
{
聽(tīng) 聽(tīng) printf("It is B.c=%d\n",Bthis->c);
}

void A_Creat(struct A* p)
{
聽(tīng) 聽(tīng) p->Foo=A_Foo;
聽(tīng) 聽(tīng) p->a=1;
聽(tīng) 聽(tīng) p->b=2;
聽(tīng) 聽(tīng) p->A_this=p;
}


void B_Creat(struct B* p)
{
聽(tīng) 聽(tīng) p->Foo=B_Foo;
聽(tīng) 聽(tīng) p->a=11;
聽(tīng) 聽(tīng) p->b=12; 聽(tīng) 聽(tīng)
聽(tīng) 聽(tīng) p->c=13;
聽(tīng) 聽(tīng) p->B_this=p;
}


int main(int argc, char* argv[])
{
聽(tīng) 聽(tīng) C_Class A *ma,a;
聽(tīng) 聽(tīng) C_Class B *mb,b;

聽(tīng) 聽(tīng) A_Creat(&a);//瀹炰緥鍖?br />聽(tīng) 聽(tīng) B_Creat(&b);

聽(tīng) 聽(tīng) mb=&b;
聽(tīng) 聽(tīng) ma=&a;

聽(tīng) 聽(tīng) ma=(C_Class A*)mb;//寮曞叆澶氭佹寚閽?br />聽(tīng) 聽(tīng) printf("%d\n",ma->a);//鍙儨鐨勫氨鏄?鍑芥暟鍙橀噺娌℃湁private
聽(tīng) 聽(tīng) ma->Foo(ma);//澶氭?br />聽(tīng) 聽(tīng) a.Foo(&a);//涓嶆槸澶氭佷簡(jiǎn)
聽(tīng) 聽(tīng) B_F2(&b);//鎴愬憳鍑芥暟錛屽洜涓烘晥鐜囬棶棰樹(shù)笉浣跨敤鍑芥暟鎸囬拡
聽(tīng) 聽(tīng) return 0;
}


銆銆杈撳嚭緇撴灉錛?br />
11
It is B.c=13
It is A.a=1
It is B_Fun</P< p>

浜曟硥 2006-06-26 18:31 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              99日韩精品| 国产精品久久久久久福利一牛影视 | 欧美一站二站| 欧美另类在线观看| 欧美国产成人精品| 欧美日韩国产黄| 欧美日韩亚洲系列| 国产精品久久一区主播| 国产视频精品xxxx| 最新国产成人av网站网址麻豆| 99国产精品99久久久久久| 亚洲一区二三| 久久亚洲综合色| 亚洲精品一区二区在线| 亚洲欧美另类在线| 欧美aⅴ99久久黑人专区| 欧美午夜一区二区| 国产一区欧美日韩| 亚洲精品午夜精品| 久久国产精品电影| 亚洲国产精品一区二区第四页av| 亚洲欧洲一区二区三区久久| 亚洲欧美国产va在线影院| 开心色5月久久精品| 欧美日韩爆操| 在线色欧美三级视频| 亚洲一区在线观看视频| 久久免费视频网| 一本大道久久a久久精品综合| 久久国产福利| 欧美涩涩视频| 亚洲国产成人一区| 午夜电影亚洲| 亚洲国产日韩欧美在线99| 亚洲一区二区三区四区中文| 久久综合久久综合久久| 国产精品色网| 日韩视频中午一区| 欧美sm视频| 欧美在线观看视频一区二区三区| 欧美日韩一二区| 亚洲二区精品| 久久精品国产99| 亚洲视频图片小说| 欧美日韩一区二区三区四区在线观看| 伊人久久大香线蕉综合热线| 午夜日韩福利| 亚洲另类视频| 欧美88av| 亚洲区中文字幕| 亚洲国产欧美日韩另类综合| 亚洲欧美日韩在线播放| 日韩亚洲一区二区| 欧美aa在线视频| 精品电影在线观看| 久久裸体视频| 久久精品91| 99国产精品| 久久国产福利| 欧美成黄导航| 久久夜色精品国产欧美乱极品| 国产日韩一区二区| 久久精品99国产精品日本 | 欧美亚洲午夜视频在线观看| 欧美日韩成人在线| 在线中文字幕一区| 日韩一区二区久久| 欧美精品一区二区三| 99精品国产高清一区二区| 亚洲开发第一视频在线播放| 欧美日韩1区2区3区| 这里只有精品视频| 亚洲一二三级电影| 国产欧美一二三区| 老司机成人网| 麻豆精品传媒视频| 9l国产精品久久久久麻豆| 亚洲精品美女在线观看| 欧美日韩影院| 欧美在线地址| 久久久久国产精品厨房| 影音先锋另类| 亚洲精品黄色| 国产欧美日韩另类一区 | 久久超碰97中文字幕| 欧美在线播放| 亚洲精品欧美极品| 亚洲一区二区三区精品在线观看| 国产一区二区三区久久久久久久久| 久久久久久久久伊人| 免费一区视频| 午夜精品久久久久久久男人的天堂 | 久久精品国产亚洲aⅴ| 久久久国产成人精品| 日韩午夜av在线| 午夜国产不卡在线观看视频| 尤物在线观看一区| 在线亚洲国产精品网站| 狠狠色香婷婷久久亚洲精品| 亚洲日本在线观看| 国产亚洲精品成人av久久ww| 欧美国产精品日韩| 国产毛片一区二区| 亚洲精品韩国| 在线观看视频日韩| 在线亚洲免费视频| 亚洲日本中文字幕| 久久精品免费观看| 性做久久久久久免费观看欧美| 老牛影视一区二区三区| 亚洲欧美日韩精品综合在线观看| 久久男女视频| 久久精品论坛| 欧美日韩ab| 免费黄网站欧美| 国产精品乱子久久久久| 一区二区三区高清在线观看| 久久xxxx精品视频| 欧美精品午夜| 久久久久久久久久码影片| 欧美日本韩国一区二区三区| 久久久久久伊人| 国产精品久久久久久久浪潮网站| 免费国产自线拍一欧美视频| 欧美三级在线播放| 亚洲大片一区二区三区| 国产专区欧美精品| 亚洲视频免费在线| 亚洲网站在线看| 欧美风情在线| 亚洲国产精品久久91精品| 国产永久精品大片wwwapp| 亚洲欧美一区二区原创| 日韩一区二区精品葵司在线| 久久综合伊人77777麻豆| 裸体素人女欧美日韩| 国产一区在线播放| 欧美在线日韩| 麻豆精品视频在线| 韩国av一区二区| 久久精品二区| 欧美gay视频| 亚洲欧洲日韩综合二区| 久久精品亚洲| 老司机一区二区| 亚洲国产二区| 麻豆91精品91久久久的内涵| 免费91麻豆精品国产自产在线观看| 国产一区观看| 久久久国产成人精品| 免播放器亚洲| 99视频日韩| 欧美日韩亚洲一区二| 亚洲夜晚福利在线观看| 欧美一区二区三区免费观看视频 | 欧美福利视频| 亚洲人人精品| 亚洲一级在线| 国产伊人精品| 久热精品视频在线| 日韩一级大片| 久久成人亚洲| 欧美一区中文字幕| 国产午夜精品麻豆| 午夜精彩视频在线观看不卡 | 亚洲剧情一区二区| 亚洲免费在线视频| 国产精品日韩一区二区| 久久成人在线| 亚洲国产精品va在线看黑人| 亚洲一区在线观看免费观看电影高清| 亚洲免费观看高清完整版在线观看熊 | 亚洲日本一区二区| 国产精品国产亚洲精品看不卡15| 亚洲性感美女99在线| 久久在线免费| 夜夜嗨av一区二区三区| 国内久久精品视频| 亚洲男人av电影| 美女成人午夜| 一区二区三区你懂的| 国产欧美在线播放| 牛牛影视久久网| 羞羞答答国产精品www一本 | 欧美成人高清| 亚洲欧洲av一区二区三区久久| 尤物精品在线| 国产精品久久久久久久久久免费 | 欧美在线日韩在线| 亚洲精品一区中文| 欧美一进一出视频| 亚洲乱码国产乱码精品精可以看| 国产精品女人久久久久久| 久久精品国产亚洲5555| 日韩亚洲欧美一区| 麻豆成人在线观看| 欧美影院视频| 99ri日韩精品视频| 亚洲第一色在线| 国产在线不卡|