CÓïÑÔº¯Êýµ÷ÓÃÔ¼¶¨
×ªÔØ×Ô£º
ܰÈÙ¼ÒÔ°blog
ÔÚCÓïÑÔÖУ¬¼ÙÉèÎÒÃÇÓÐÕâÑùµÄÒ»¸öº¯Êý£º
int function(int a,int b)
µ÷
ÓÃʱֻҪÓÃresult =
function(1,2)ÕâÑùµÄ·½Ê½¾Í¿ÉÒÔʹÓÃÕâ¸öº¯Êý¡£µ«ÊÇ£¬µ±¸ß¼¶ÓïÑÔ±»±àÒë³É¼ÆËã»ú¿ÉÒÔʶ±ðµÄ»úÆ÷Âëʱ£¬ÓÐÒ»¸öÎÊÌâ¾Í͹ÏÖ³öÀ´£ºÔÚCPUÖУ¬¼ÆËã
»úûÓа취֪µÀÒ»¸öº¯Êýµ÷ÓÃÐèÒª¶àÉÙ¸ö¡¢Ê²Ã´ÑùµÄ²ÎÊý£¬Ò²Ã»ÓÐÓ²¼þ¿ÉÒÔ±£´æÕâЩ²ÎÊý¡£Ò²¾ÍÊÇ˵£¬¼ÆËã»ú²»ÖªµÀÔõô¸øÕâ¸öº¯Êý´«µÝ²ÎÊý£¬´«µÝ²ÎÊýµÄ¹¤×÷±ØÐë
Óɺ¯Êýµ÷ÓÃÕߺͺ¯Êý±¾ÉíÀ´Ðµ÷¡£Îª´Ë£¬¼ÆËã»úÌṩÁËÒ»ÖÖ±»³ÆÎªÕ»µÄÊý¾Ý½á¹¹À´Ö§³Ö²ÎÊý´«µÝ¡£
Õ»ÊÇÒ»ÖÖÏȽøºó³öµÄÊý¾Ý½á¹¹£¬Õ»ÓÐÒ»¸ö´æ´¢Çø¡¢
Ò»¸öÕ»¶¥Ö¸Õë¡£Õ»¶¥Ö¸ÕëÖ¸Ïò¶ÑÕ»ÖеÚÒ»¸ö¿ÉÓõÄÊý¾ÝÏ±»³ÆÎªÕ»¶¥£©¡£Óû§¿ÉÒÔÔÚÕ»¶¥ÉÏ·½ÏòÕ»ÖмÓÈëÊý¾Ý£¬Õâ¸ö²Ù×÷±»³ÆÎªÑ¹Õ»(Push)£¬Ñ¹Õ»ÒÔºó£¬Õ»
¶¥×Ô¶¯±ä³ÉмÓÈëÊý¾ÝÏîµÄλÖã¬Õ»¶¥Ö¸ÕëÒ²ËæÖ®Ð޸ġ£Óû§Ò²¿ÉÒÔ´Ó¶ÑÕ»ÖÐÈ¡×ßÕ»¶¥£¬³ÆÎªµ¯³öÕ»(pop)£¬µ¯³öÕ»ºó£¬Õ»¶¥ÏµÄÒ»¸öÔªËØ±ä³ÉÕ»¶¥£¬Õ»¶¥Ö¸Õë
ËæÖ®Ð޸ġ£
º¯Êýµ÷ÓÃʱ£¬µ÷ÓÃÕßÒÀ´Î°Ñ²ÎÊýѹջ£¬È»ºóµ÷Óú¯Êý£¬º¯Êý±»µ÷ÓÃÒÔºó£¬ÔÚ¶ÑÕ»ÖÐÈ¡µÃÊý¾Ý£¬²¢½øÐмÆËã¡£º¯Êý¼ÆËã½áÊøÒԺ󣬻òÕßµ÷ÓÃÕß¡¢»òÕߺ¯Êý±¾ÉíÐ޸ĶÑÕ»£¬Ê¹¶ÑÕ»»Ö¸´Ô×°¡£
ÔÚ²ÎÊý´«µÝÖУ¬ÓÐÁ½¸öºÜÖØÒªµÄÎÊÌâ±ØÐëµÃµ½Ã÷ȷ˵Ã÷£º
µ±²ÎÊý¸öÊý¶àÓÚÒ»¸öʱ£¬°´ÕÕʲô˳Ðò°Ñ²ÎÊýѹÈë¶ÑÕ»
º¯Êýµ÷Óúó£¬ÓÉËÀ´°Ñ¶ÑÕ»»Ö¸´Ô×°
Ôڸ߼¶ÓïÑÔÖУ¬Í¨¹ýº¯Êýµ÷ÓÃÔ¼¶¨À´ËµÃ÷ÕâÁ½¸öÎÊÌâ¡£³£¼ûµÄµ÷ÓÃÔ¼¶¨ÓУº
stdcall
cdecl
fastcall
thiscall
naked call
stdcallµ÷ÓÃÔ¼¶¨
stdcall
ºÜ¶àʱºò±»³ÆÎªpascalµ÷ÓÃÔ¼¶¨£¬ÒòΪpascalÊÇÔçÆÚºÜ³£¼ûµÄÒ»ÖÖ½ÌѧÓüÆËã»ú³ÌÐòÉè¼ÆÓïÑÔ£¬ÆäÓï·¨ÑϽ÷£¬Ê¹Óõĺ¯Êýµ÷ÓÃÔ¼¶¨¾ÍÊÇ
stdcall¡£ÔÚMicrosoft
C++ϵÁеÄC/C++±àÒëÆ÷ÖУ¬³£³£ÓÃPASCALºêÀ´ÉùÃ÷Õâ¸öµ÷ÓÃÔ¼¶¨£¬ÀàËÆµÄºê»¹ÓÐWINAPIºÍCALLBACK¡£
stdcallµ÷ÓÃÔ¼¶¨ÉùÃ÷µÄÓ﷨Ϊ(ÒÔǰÎĵÄÄǸöº¯ÊýΪÀý£©£º
int __stdcall
function(int a,int b)
stdcallµÄµ÷ÓÃÔ¼¶¨Òâζ×Å£º1£©²ÎÊý´ÓÓÒÏò×óѹÈë¶ÑÕ»£¬2£©º¯Êý×ÔÉíÐ޸ĶÑÕ» 3)º¯ÊýÃû×Ô¶¯¼Óǰµ¼µÄÏ»®Ïߣ¬ºóÃæ½ô¸úÒ»¸ö@·ûºÅ£¬Æäºó½ô¸ú×ŲÎÊýµÄ³ß´ç
ÒÔÉÏÊöÕâ¸öº¯ÊýΪÀý£¬²ÎÊýbÊ×Ïȱ»Ñ¹Õ»£¬È»ºóÊDzÎÊýa£¬º¯Êýµ÷ÓÃfunction(1,2)µ÷Óô¦·Òë³É»ã±àÓïÑÔ½«±ä³É£º
push 2 µÚ¶þ¸ö²ÎÊýÈëÕ»
push 1 µÚÒ»¸ö²ÎÊýÈëÕ»
call function µ÷ÓòÎÊý£¬×¢Òâ´Ëʱ×Ô¶¯°Ñcs:eipÈëÕ»
¶ø¶ÔÓÚº¯Êý×ÔÉí£¬Ôò¿ÉÒÔ·ÒëΪ£º
push ebp ±£´æebp¼Ä´æÆ÷£
Ïà¹ØÎĵµ£º
×ÔÓɵĸèÒ¥
¡¡¡¡±¾ÊéÊÇ×ÔÓÉÈí¼þ´ÔÊéµÄÒ»²¿·Ö£¬Ò²ÊÇÒ»Ê××ÔÓɵĸèÒ¥¡£
¡¡¡¡±¾ÊéÖвûÊöµÄGNU C¿â£¬¶¨ÒåÁËËùÓÐÔÚISO C±ê×¼Ëù¹æ¶¨µÄ£¬ÒÔ¼°POSIX±ê×¼¡¢ÆäËüÏà¹Ø±ê×¼ºÍUNIXϵͳËùÅÉÉúµÄ±ê×¼Öж¨ÒåµÄËùÓк¯Êý£¬ÎªGNU²Ù×÷ϵͳËùÖ§³Ö¡£
C³ÌÐòÉè¼ÆÓïÑÔÌṩÖîÈçÊäÈë/Êä³ö¡ ......
1. ×¼±¸¹¤×÷£º
¿ª·¢°åµÄipÉèÖÃ
gzsd> net set ipaddr 192.168.0.11 ÉèÖÿª·¢°åµÄIP
gzsd> net set serverip 192.169.0.10 ÉèÖÃtftp serverµÄIP
gzsd> net set netmask 255.255.255.0 ÉèÖÃ×ÓÍøÑÚÂë
gzsd> net save ±£´æÉèÖÃ
gzsd> net ping XXX ²âÊÔÁ¬½Ó×´¿ö
°²×°tftp·þÎñÆ÷
windowsÏÂ
ÔËÐйâÅ̹¤¾ß ......
......
¡¾Àý8.6¡¿HanoiËþÎÊÌâ
Ò»¿é°åÉÏÓÐÈý¸ùÕ룬A£¬B£¬C¡£AÕëÉÏÌ×ÓÐ64¸ö´óС²»µÈµÄÔ²ÅÌ£¬´óµÄÔÚÏ£¬Ð¡µÄÔÚÉÏ¡£Èçͼ5.4Ëùʾ¡£Òª°ÑÕâ64¸öÔ²ÅÌ´ÓAÕëÒÆ¶¯CÕëÉÏ£¬Ã¿´ÎÖ»ÄÜÒÆ¶¯Ò»¸öÔ²ÅÌ£¬Òƶ¯¿ÉÒÔ½èÖúBÕë½øÐС£µ«ÔÚÈκÎʱºò£¬ÈκÎÕëÉϵÄÔ²Å̶¼±ØÐë±£³Ö´óÅÌÔÚÏ£¬Ð¡ÅÌÔÚÉÏ¡£ÇóÒÆ¶¯µÄ²½Öè¡£
±¾ÌâËã·¨·ÖÎöÈçÏ£¬ÉèAÉÏ ......
¡¾Àý10.21¡¿ÓÃÑ¡Ôñ·¨¶Ô10¸öÕûÊýÅÅÐò¡£
main()
{int *p,i,a[10]={3,7,9,11,0,6,7,5,4,2};
printf("The original array:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{printf("%d ",*p);p++;}
printf("\n");
}
sort(int x[],int n)
......