¡¾C/C++¡¿×᳣ܽÓõĺ¯Êýµ÷ÓÃÔ¼¶¨
Ò»¡¢º¯Êýµ÷ÓõĻù±¾²½Öè
º¯Êýµ÷ÓôóÖ°üÀ¨ÒÔϼ¸¸ö²½Öè¡£
£¨1£©²ÎÊýÈëÕ»£º½«²ÎÊý´ÓÓÒÏò×óÒÀ´ÎѹÈëϵͳջÖС£
£¨2£©·µ»ØµØÖ·ÈëÕ»£º½«µ±Ç°´úÂëÇøµ÷ÓÃÖ¸ÁîµÄÏÂÒ»ÌõÖ¸ÁîµØÖ·Ñ¹ÈëÕ»ÖУ¬¹©º¯Êý·µ»ØÊ±¼ÌÐøÖ´ÐС£
£¨3£©´úÂëÇøÌø×ª£º´¦ÀíÆ÷´Óµ±Ç°´úÂëÇøÌø×ªµ½±»µ÷Óú¯ÊýµÄÈë¿Ú´¦¡£
£¨4£©Õ»Ö¡µ÷Õû£º¾ßÌå°üÀ¨£º
±£´æµ±Ç°Õ»Ö¡×´Ì¬Öµ£¬Òѱ¸ºóÃæ»Ö¸´±¾Õ»Ö¡Ê±Ê¹Óã¨EBPÈëÕ»£©¡£
½«µ±Ç°Õ»Ö¡Çл»µ½ÐÂÕ»Ö¡£¨½«ESPÖµ×°ÈëEBP£¬¸üÐÂÕ»Ö¡µ×²¿£©¡£
¸øÐÂÕ»Ö¡·ÖÅä¿Õ¼ä£¨°ÑESP¼õÈ¥ËùÐè¿Õ¼äµÄ´óС£¬Ì§¸ßÕ»¶¥£©¡£
¶þ¡¢º¯Êýµ÷ÓÃÔ¼¶¨£º
µ÷ÓÃÔ¼¶¨µÄÉùÃ÷
²ÎÊýÈëջ˳Ðò
»Ö¸´Õ»Æ½ºâµÄλÖÃ
__cdecl
ÓÒ→×ó
ĸº¯Êý
__fastcall
ÓÒ→×ó
×Óº¯Êý
__stdcall
ÓÒ→×ó
×Óº¯Êý
Èý¡¢¾ßÌåµÄ±íÏÖ
£¨1£© __cdecl
º¯Êý±¾Éí²»ÇåÀí¶ÑÕ»£¬µ÷ÓÃÕ߸ºÔðÇåÀí¶ÑÕ»¡£ÓÉÓÚÕâÖֱ仯£¬Cµ÷ÓÃÔ¼¶¨ÔÊÐíº¯ÊýµÄ²ÎÊýµÄ¸öÊýÊDz»¹Ì¶¨µÄ
£¨2£© __fastcall
º¯ÊýµÄµÚÒ»¸öºÍµÚ¶þ¸öDWORD²ÎÊý£¨»òÕ߳ߴç¸üСµÄ£©Í¨¹ýecxºÍedx´«µÝ£¬ÆäËû²ÎÊýͨ¹ý´ÓÓÒÏò×óµÄ˳Ðòѹջ
±»µ÷Óú¯ÊýÇåÀí¶ÑÕ»
£¨3£© __stdcall
²ÎÊý´ÓÓÒÏò×óѹÈë¶ÑÕ»
º¯Êý×ÔÉíÐ޸ĶÑÕ»
ËÄ¡¢VCϵıíÏÖ
ÔÚVCµÄ¹¤³ÌÉèÖÃÖпÉÒÔÉèÖú¯Êýµ÷Ó÷½Ê½£¬´Ó±íÏÖ¿ÉÒÔ¿´³öÃ÷ÏԵIJî±ð¡£
£¨1£©Èç¹ûÉèÖóÉ__cdecl*£¬ÄÇô¶ÔÓÚÏÂÃæµÄ´úÂ룬»ã±à±íÏÖΪ£º
00402692 push 8
00402694 push 5
00402696 push 3
00402698 call @ILT+275(GetNum) (00401118)
0040269D add esp,0Ch
£¨2£©Èç¹ûÉèÖóÉ__stdcall£¬ÄÇô¶ÔÓÚÏÂÃæµÄ´úÂ룬»ã±à±íÏÖΪ£º
00402692 push 8
00402694 push 5
00402696 push 3
00402698 call @ILT+280(GetNum) (0040111d)
£¨3£©Èç¹ûÉèÖóÉ__fastcall£¬ÄÇô¶ÔÓÚÏÂÃæµÄ´úÂ룬»ã±à±íÏÖΪ£º
00402692 push 8
00402694 mov
Ïà¹ØÎĵµ£º
1.ÒýÑÔ
¡¡¡¡C++ÓïÑԵĴ´½¨³õÖÔÊÇ“a better C”£¬µ«ÊÇÕâ²¢²»Òâζ×ÅC++ÖÐÀàËÆCÓïÑÔµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýËù²ÉÓõıàÒëºÍÁ¬½Ó·½Ê½ÓëCÓïÑÔÍêÈ«Ïàͬ¡£×÷ΪһÖÖÓûÓëC¼æÈݵÄÓïÑÔ£¬C++±£ÁôÁËÒ»²¿·Ö¹ý³ÌʽÓïÑÔµÄÌØµã(±»ÊÀÈ˳ÆÎª“²»³¹µ×µØÃæÏò¶ÔÏó”)£¬Òò¶øËü¿ÉÒÔ¶¨Òå²»ÊôÓÚÈκÎÀàµÄÈ«¾Ö±äÁ¿ºÍº¯Êý¡£µ«ÊÇ£¬C++±Ï¾¹Ê ......
µÚÒ»£ºprivate, public, protected ·ÃÎʱêºÅµÄ·ÃÎÊ·¶Î§£¬ÔÚûÓм̳еÄÇé¿öÏ£º
private£º
Ö»ÄÜÓÉ
1.¸ÃÀàÖеĺ¯Êý¡¢2.ÆäÓÑÔªº¯Êý·ÃÎÊ¡£
²»Äܱ»ÈÎºÎÆäËû·ÃÎÊ£¬¸ÃÀàµÄ¶ÔÏóÒ²²»ÄÜ·ÃÎÊ¡£
protected£º
¿ÉÒÔ±»1.¸ÃÀàÖеĺ¯Êý¡¢2.×ÓÀàµÄº¯Êý¡¢ÒÔ¼°3.ÆäÓÑÔªº¯Êý·ÃÎÊ¡£
µ«²»Äܱ»¸ÃÀàµÄ¶ÔÏó·ÃÎÊ¡£
public£º
¿ÉÒÔ±»1.¸ÃÀàÖе ......
Ô¤±¸ÖªÊ¶—³ÌÐòµÄÄÚ´æ·ÖÅä
Ò»¸öÓÉC/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ......
½ÆäÃ÷ Òë
ÔÎÄ£º
http://www.codeproject.com/cpp/complex_declarations.asp
×÷ÕߣºVikram A Punathambekar
½éÉÜ
Ôø¾Åöµ½¹ýÈÃÄãÃԻ󲻽⡢ÀàËÆÓÚint * (* (*fp1) (int) ) [10];ÕâÑùµÄ±äÁ¿ÉùÃ÷Â𣿱¾ÎĽ«ÓÉÒ×µ½ÄÑ£¬Ò»²½Ò»²½½Ì»áÄãÈçºÎÀí½âÕâÖÖ¸´ÔÓµÄC/C++ÉùÃ÷£ºÎÒÃǽ«´ÓÿÌì¶¼ÄÜÅöµ½µÄ ......
C¼°´«Í³C++
#include <assert.h>¡¡¡¡¡¡¡¡//É趨²åÈëµã
#include <ctype.h>¡¡¡¡¡¡¡¡ //×Ö·û´¦Àí
#include <errno.h>¡¡¡¡¡¡¡¡ //¶¨Òå´íÎóÂë
#include <float.h>¡¡¡¡¡¡¡¡ //¸¡µãÊý´¦Àí
#include <fstream.h>¡¡¡¡¡¡ //ÎļþÊäÈ룯Êä³ö
#include <iomanip.h>¡¡¡¡¡¡ //²ÎÊý»¯ÊäÈ룯Êä³ö ......