锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 綾誨瀷 瀹氫箟
浣滀負鍓嶇紑錛岃屽彞鏌勫瀷鎬繪槸鍐犱互H銆?
-------------------------------------------------------------
ATOM 鍘熷瓙(瀛楃涓插湪鍘熷瓙琛ㄤ腑鐨勫弬鑰冨?
BOOL 甯冨皵鍨?閫昏緫鍨?鍙橀噺(搴斾負TRUE鎴朏ALSE)
BOOLEAN 甯冨皵鍨?閫昏緫鍨?鍙橀噺(搴斾負TRUE鎴朏ALSE)
BYTE 瀛楄妭(8浣?
CCHAR Windows瀛楃
CHAR Windows瀛楃
COLORREF RGB(綰㈢豢钃?棰滆壊鍊?32浣?
CONST 鍦ㄦ墽琛屾椂鍏跺間繚鎸佷笉鍙樼殑鍙橀噺
DLGPROC 鎸囧悜搴旂敤紼嬪簭瀹氫箟鐨勫璇濇榪囩▼鍥炶皟榪囩▼鐨勬寚閽?br>DWORD 鍙屽瓧(32浣?
DWORDLONG 鍙屽弻瀛?64浣?
FARPROC 鎸囧悜搴旂敤紼嬪簭瀹氫箟鐨勬寚閽?br>FLOAT 嫻偣鍨嬪彉閲?br>GLOBALHANDLE 鍏ㄥ眬鍐呭瓨鍧楀彞鏌?br>HACCEL 鍔犻熼敭琛ㄥ彞鏌?br>HANDLE 瀵硅薄鍙ユ焺
HBITMAP 浣嶅浘鍙ユ焺
HBRUSH 鐢誨埛鍙ユ焺
HDC 璁懼鎻忚堪琛ㄥ彞鏌?br>HFILE 鏂囦歡鍙ユ焺
HFONT 瀛椾綋鍙ユ焺
HGDIOBJ GDI(鍥懼艦璁懼鎺ュ彛)瀵硅薄鍙ユ焺
HGLOBAL 鍏ㄥ眬鍐呭瓨鍧楀彞鏌?br>HHOOK 閽╁瓙鍙ユ焺
HICON 鍥炬爣鍙ユ焺
HINSTANCE 瀹炰緥鍙ユ焺
HLOCAL 鏈湴鍐呭瓨鍙ユ焺
HMENU 鑿滃崟鍙ユ焺
HOOKPROC 鎸囧悜搴旂敤紼嬪簭瀹氫箟鐨勯挬瀛愮殑鎸囬拡
HPALETTE 璋冭壊鏉垮彞鏌?br>HPEN 鐢葷瑪鍙ユ焺
HWND 紿楀彛鍙ユ焺
LOCALHAND 鏈湴鍐呭瓨鍙ユ焺
LONG 32浣嶆棤絎﹀彿鍊?br>LONGLONG 64浣嶆棤絎﹀彿鍊?br>LPARAM 32浣嶆秷鎭弬鏁?br>LPCSTR 鎸囧悜Windows甯稿瓧絎︿覆(浠ョ┖瀛楃緇撴潫)鐨勬寚閽?br>LPSTR 鎸囧悜Windows瀛楃涓?浠ョ┖瀛楃緇撴潫)鐨勬寚閽?br>LPVOID 鎸囧悜浠繪剰綾誨瀷鐨勬寚閽?br>PROC 鎸囧悜鍥炶皟鍑芥暟鐨勬寚閽?br>SHORT 鐭暣鍨嬫暟
UCHAR 鏃犵鍙稺indows瀛楃
UINT 鏃犵鍙鋒暣鏁?br>ULONG 鏃犵鍙烽暱鏁村瀷鏁?32浣?
USHORT 鏃犵鍙風煡鏁村瀷鏁?16浣?
VOID 浠繪剰綾誨瀷
WNDPROC 鎸囧悜鍦ㄥ簲鐢ㄧ▼搴忎腑瀹氫箟鐨勭獥鍙h繃紼嬬殑鎸囬拡
WORD 鏃犵鍙峰瓧(16浣?
WPARAM 32浣嶆秷鎭弬鏁?nbsp;
]]>
鏍堬細鍏堣繘鍚庡嚭
鍫嗗拰鏍堢殑鍖哄埆
涓銆侀澶囩煡璇嗏旂▼搴忕殑鍐呭瓨鍒嗛厤
涓涓敱c/C++緙栬瘧鐨勭▼搴忓崰鐢ㄧ殑鍐呭瓨鍒嗕負浠ヤ笅鍑犱釜閮ㄥ垎
1銆佹爤鍖猴紙stack錛夆?鐢辯紪璇戝櫒鑷姩鍒嗛厤閲婃斁 錛屽瓨鏀懼嚱鏁扮殑鍙傛暟鍊鹼紝灞閮ㄥ彉閲忕殑鍊肩瓑銆傚叾鎿嶄綔鏂瑰紡綾諱技浜庢暟鎹粨鏋勪腑鐨勬爤
2銆佸爢鍖猴紙heap錛?鈥?涓鑸敱紼嬪簭鍛樺垎閰嶉噴鏀撅紝 鑻ョ▼搴忓憳涓嶉噴鏀撅紝紼嬪簭緇撴潫鏃跺彲鑳界敱OS鍥炴敹 銆傛敞鎰忓畠涓庢暟鎹粨鏋勪腑鐨勫爢鏄袱鍥炰簨錛屽垎閰嶆柟寮忓掓槸綾諱技浜庨摼琛紝鍛靛懙銆?br>3銆佸叏灞鍖猴紙闈欐佸尯錛夛紙static錛夆旓紝鍏ㄥ眬鍙橀噺鍜岄潤鎬佸彉閲忕殑瀛樺偍鏄斁鍦ㄤ竴鍧楃殑錛屽垵濮嬪寲鐨勫叏灞鍙橀噺鍜岄潤鎬佸彉閲忓湪涓鍧楀尯鍩燂紝 鏈垵濮嬪寲鐨勫叏灞鍙橀噺鍜屾湭鍒濆鍖栫殑闈欐佸彉閲忓湪鐩擱偦鐨勫彟涓鍧楀尯鍩熴?- 紼嬪簭緇撴潫鍚庢湁緋葷粺閲婃斁
4銆佹枃瀛楀父閲忓尯 鈥斿父閲忓瓧絎︿覆灝辨槸鏀懼湪榪欓噷鐨勩?紼嬪簭緇撴潫鍚庣敱緋葷粺閲婃斁
5銆佺▼搴忎唬鐮佸尯鈥斿瓨鏀懼嚱鏁頒綋鐨勪簩榪涘埗浠g爜銆?br>浜屻佷緥瀛愮▼搴?br>榪欐槸涓涓墠杈堝啓鐨勶紝闈炲父璇︾粏
//main.cpp
int a = 0; 鍏ㄥ眬鍒濆鍖栧尯
char *p1; 鍏ㄥ眬鏈垵濮嬪寲鍖?br>main()
{
int b; 鏍?br> char s[] = "abc"; 鏍?
char *p2; 鏍?
char *p3 = "123456"; 123456\0鍦ㄥ父閲忓尯錛宲3鍦ㄦ爤涓娿?
static int c =0錛?鍏ㄥ眬錛堥潤鎬侊級鍒濆鍖栧尯
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
鍒嗛厤寰楁潵寰?0鍜?0瀛楄妭鐨勫尯鍩熷氨鍦ㄥ爢鍖恒?
strcpy(p1, "123456"); 123456\0鏀懼湪甯擱噺鍖猴紝緙栬瘧鍣ㄥ彲鑳戒細灝嗗畠涓巔3鎵鎸囧悜鐨?123456"浼樺寲鎴愪竴涓湴鏂廣?
}
浜屻佸爢鍜屾爤鐨勭悊璁虹煡璇?br>2.1鐢寵鏂瑰紡
stack:鐢辯郴緇熻嚜鍔ㄥ垎閰嶃?渚嬪錛屽0鏄庡湪鍑芥暟涓竴涓眬閮ㄥ彉閲?int b; 緋葷粺鑷姩鍦ㄦ爤涓負b寮杈熺┖闂?br>heap:闇瑕佺▼搴忓憳鑷繁鐢寵錛屽茍鎸囨槑澶у皬錛屽湪c涓璵alloc鍑芥暟濡俻1 = (char *)malloc(10);鍦–++涓敤new榪愮畻絎﹀p2 = (char *)malloc(10);浣嗘槸娉ㄦ剰p1銆乸2鏈韓鏄湪鏍堜腑鐨?br>2.2鐢寵鍚庣郴緇熺殑鍝嶅簲
鏍堬細鍙鏍堢殑鍓╀綑絀洪棿澶т簬鎵鐢寵絀洪棿錛岀郴緇熷皢涓虹▼搴忔彁渚涘唴瀛橈紝鍚﹀垯灝嗘姤寮傚父鎻愮ず鏍堟孩鍑恒?br>鍫嗭細棣栧厛搴旇鐭ラ亾鎿嶄綔緋葷粺鏈変竴涓褰曠┖闂插唴瀛樺湴鍧鐨勯摼琛紝褰撶郴緇熸敹鍒扮▼搴忕殑鐢寵鏃訛紝浼氶亶鍘嗚閾捐〃錛屽鎵劇涓涓┖闂村ぇ浜庢墍鐢寵絀洪棿鐨勫爢緇撶偣錛岀劧鍚庡皢璇ョ粨鐐逛粠絀洪棽緇撶偣閾捐〃涓垹闄わ紝騫跺皢璇ョ粨鐐圭殑絀洪棿鍒嗛厤緇欑▼搴忥紝鍙﹀錛屽浜庡ぇ澶氭暟緋葷粺錛屼細鍦ㄨ繖鍧楀唴瀛樼┖闂翠腑鐨勯鍦板潃澶勮褰曟湰嬈″垎閰嶇殑澶у皬錛岃繖鏍鳳紝浠g爜涓殑delete璇彞鎵嶈兘姝g‘鐨勯噴鏀炬湰鍐呭瓨絀洪棿銆傚彟澶栵紝鐢變簬鎵懼埌鐨勫爢緇撶偣鐨勫ぇ灝忎笉涓瀹氭濂界瓑浜庣敵璇風殑澶у皬錛岀郴緇熶細鑷姩鐨勫皢澶氫綑鐨勯偅閮ㄥ垎閲嶆柊鏀懼叆絀洪棽閾捐〃涓?
2.3鐢寵澶у皬鐨勯檺鍒?br>鏍堬細鍦╓indows涓?鏍堟槸鍚戜綆鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄竴鍧楄繛緇殑鍐呭瓨鐨勫尯鍩熴傝繖鍙ヨ瘽鐨勬剰鎬濇槸鏍堥《鐨勫湴鍧鍜屾爤鐨勬渶澶у閲忔槸緋葷粺棰勫厛瑙勫畾濂界殑錛屽湪 WINDOWS涓嬶紝鏍堢殑澶у皬鏄?M錛堜篃鏈夌殑璇存槸1M錛屾諱箣鏄竴涓紪璇戞椂灝辯‘瀹氱殑甯告暟錛夛紝濡傛灉鐢寵鐨勭┖闂磋秴榪囨爤鐨勫墿浣欑┖闂存椂錛屽皢鎻愮ずoverflow銆傚洜姝わ紝鑳戒粠鏍堣幏寰楃殑絀洪棿杈冨皬銆?br>鍫嗭細鍫嗘槸鍚戦珮鍦板潃鎵╁睍鐨勬暟鎹粨鏋勶紝鏄笉榪炵畫鐨勫唴瀛樺尯鍩熴傝繖鏄敱浜庣郴緇熸槸鐢ㄩ摼琛ㄦ潵瀛樺偍鐨勭┖闂插唴瀛樺湴鍧鐨勶紝鑷劧鏄笉榪炵畫鐨勶紝鑰岄摼琛ㄧ殑閬嶅巻鏂瑰悜鏄敱浣庡湴鍧鍚戦珮鍦板潃銆傚爢鐨勫ぇ灝忓彈闄愪簬璁$畻鏈虹郴緇熶腑鏈夋晥鐨勮櫄鎷熷唴瀛樸傜敱姝ゅ彲瑙侊紝鍫嗚幏寰楃殑絀洪棿姣旇緝鐏墊椿錛屼篃姣旇緝澶с?
2.4鐢寵鏁堢巼鐨勬瘮杈冿細
鏍堢敱緋葷粺鑷姩鍒嗛厤錛岄熷害杈冨揩銆備絾紼嬪簭鍛樻槸鏃犳硶鎺у埗鐨勩?br>鍫嗘槸鐢眓ew鍒嗛厤鐨勫唴瀛橈紝涓鑸熷害姣旇緝鎱紝鑰屼笖瀹規槗浜х敓鍐呭瓨紕庣墖,涓嶈繃鐢ㄨ搗鏉ユ渶鏂逛究. 鍙﹀錛屽湪WINDOWS涓嬶紝鏈濂界殑鏂瑰紡鏄敤VirtualAlloc鍒嗛厤鍐呭瓨錛屼粬涓嶆槸鍦ㄥ爢錛屼篃涓嶆槸鍦ㄦ爤鏄洿鎺ュ湪榪涚▼鐨勫湴鍧絀洪棿涓繚鐣欎竴蹇唴瀛橈紝铏界劧鐢ㄨ搗鏉ユ渶涓嶆柟渚褲備絾鏄熷害蹇紝涔熸渶鐏墊椿
2.5鍫嗗拰鏍堜腑鐨勫瓨鍌ㄥ唴瀹?br>鏍堬細 鍦ㄥ嚱鏁拌皟鐢ㄦ椂錛岀涓涓繘鏍堢殑鏄富鍑芥暟涓悗鐨勪笅涓鏉℃寚浠わ紙鍑芥暟璋冪敤璇彞鐨勪笅涓鏉″彲鎵ц璇彞錛夌殑鍦板潃錛岀劧鍚庢槸鍑芥暟鐨勫悇涓弬鏁幫紝鍦ㄥぇ澶氭暟鐨凜緙栬瘧鍣ㄤ腑錛屽弬鏁版槸鐢卞彸寰宸﹀叆鏍堢殑錛岀劧鍚庢槸鍑芥暟涓殑灞閮ㄥ彉閲忋傛敞鎰忛潤鎬佸彉閲忔槸涓嶅叆鏍堢殑銆傚綋鏈鍑芥暟璋冪敤緇撴潫鍚庯紝灞閮ㄥ彉閲忓厛鍑烘爤錛岀劧鍚庢槸鍙傛暟錛屾渶鍚庢爤欏舵寚閽堟寚鍚戞渶寮濮嬪瓨鐨勫湴鍧錛屼篃灝辨槸涓誨嚱鏁頒腑鐨勪笅涓鏉℃寚浠わ紝紼嬪簭鐢辮鐐圭戶緇繍琛屻?
鍫嗭細涓鑸槸鍦ㄥ爢鐨勫ご閮ㄧ敤涓涓瓧鑺傚瓨鏀懼爢鐨勫ぇ灝忋傚爢涓殑鍏蜂綋鍐呭鏈夌▼搴忓憳瀹夋帓銆?
2.6瀛樺彇鏁堢巼鐨勬瘮杈?
char s1[] = "aaaaaaaaaaaaaaa";
char *s2 = "bbbbbbbbbbbbbbbbb";
aaaaaaaaaaa鏄湪榪愯鏃跺埢璧嬪肩殑錛涜宐bbbbbbbbbb鏄湪緙栬瘧鏃跺氨紜畾鐨勶紱浣嗘槸錛屽湪浠ュ悗鐨勫瓨鍙栦腑錛屽湪鏍堜笂鐨勬暟緇勬瘮鎸囬拡鎵鎸囧悜鐨勫瓧絎︿覆(渚嬪鍫?蹇?
姣斿錛?br>#include
void main()
{
char a = 1;
char c[] = "1234567890";
char *p ="1234567890";
a = c[1];
a = p[1];
return;
}
瀵瑰簲鐨勬眹緙栦唬鐮?
10: a = c[1];
00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh]
0040106A 88 4D FC mov byte ptr [ebp-4],cl
11: a = p[1];
0040106D 8B 55 EC mov edx,dword ptr [ebp-14h]
00401070 8A 42 01 mov al,byte ptr [edx+1]
00401073 88 45 FC mov byte ptr [ebp-4],al
絎竴縐嶅湪璇誨彇鏃剁洿鎺ュ氨鎶婂瓧絎︿覆涓殑鍏冪礌璇誨埌瀵勫瓨鍣╟l涓紝鑰岀浜岀鍒欒鍏堟妸鎸囬拡鍊艱鍒癳dx涓紝鍦ㄦ牴鎹甧dx璇誨彇瀛楃錛屾樉鐒舵參浜嗐?
2.7灝忕粨錛?br>鍫嗗拰鏍堢殑鍖哄埆鍙互鐢ㄥ涓嬬殑姣斿柣鏉ョ湅鍑猴細浣跨敤鏍堝氨璞℃垜浠幓楗閲屽悆楗紝鍙鐐硅彍錛堝彂鍑虹敵璇鳳級銆佷粯閽便佸拰鍚冿紙浣跨敤錛夛紝鍚冮ケ浜嗗氨璧幫紝涓嶅繀鐞嗕細鍒囪彍銆佹礂鑿滅瓑鍑嗗宸ヤ綔鍜屾礂紕椼佸埛閿呯瓑鎵熬宸ヤ綔錛屼粬鐨勫ソ澶勬槸蹇嵎錛屼絾鏄嚜鐢卞害灝忋?浣跨敤鍫嗗氨璞℃槸鑷繁鍔ㄦ墜鍋氬枩嬈㈠悆鐨勮彍鑲達紝姣旇緝楹葷儲錛屼絾鏄瘮杈冪鍚堣嚜宸辯殑鍙e懗錛岃屼笖鑷敱搴﹀ぇ銆?
鍫嗗拰鏍堢殑鍖哄埆涓昏鍒嗭細
鎿嶄綔緋葷粺鏂歸潰鐨勫爢鍜屾爤錛屽涓婇潰璇寸殑閭d簺錛屼笉澶氳浜嗐傝繕鏈夊氨鏄暟鎹粨鏋勬柟闈㈢殑鍫嗗拰鏍堬紝榪欎簺閮芥槸涓嶅悓鐨勬蹇點傝繖閲岀殑鍫嗗疄闄呬笂鎸囩殑灝辨槸錛堟弧瓚沖爢鎬ц川鐨勶級浼樺厛闃熷垪鐨勪竴縐嶆暟鎹粨鏋勶紝絎?涓厓绱犳湁鏈楂樼殑浼樺厛鏉冿紱鏍堝疄闄呬笂灝辨槸婊¤凍鍏堣繘鍚庡嚭鐨勬ц川鐨勬暟瀛︽垨鏁版嵁緇撴瀯銆傝櫧鐒跺爢鏍堬紝鍫嗘爤鐨勮娉曟槸榪炶搗鏉ュ彨錛屼絾鏄粬浠繕鏄湁寰堝ぇ鍖哄埆鐨勶紝榪炵潃鍙彧鏄敱浜庡巻鍙茬殑鍘熷洜銆?/font>
]]>