Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

C/C++ÒÆÎ»ÔËËã·û³ö½çºóµÄ½á¹ûÊDz»¿ÉÔ¤ÆÚµÄ

ת×Ô£ºhttp://dev.csdn.net/article/29/29329.shtm
 
¹ØÓÚÂß¼­ÒÆÎ»¡¢ËãÊõÒÆÎ»¿É²Î¼û ѸÀ×Éî´ó±ÊÊÔÌⲿ·Ö¡£µÄÒ»µÀÌâ¡£
ÒÔǰ¿´µ½C++±ê×¼ÉÏ˵£¬ÒÆÎ»ÔËËã·û£¨<<¡¢>>£©³ö½çʱµÄÐÐΪ²¢²»È·¶¨£º
The behavior is undefined if the right operand is negative, or greater than or equal to the length in bits of the promoted left operand.
ÎÒµ±Ê±Ò²Ã»ÓÐÉ¹ýÕâ¸öÎÊÌ⡣ǰ¼¸ÌìÓиöÍøÓÑÀ´ÐÅÎÊÆðÕâ¼þÊ£¬ÎҲŷ¢ÏÖ£¬ÕâºÍIntel CPUµÄÒÆÎ»ÔËËãÓйء£ÏÂÃæÊÇÄÇÎ»ÍøÓѵÄÀ´ÐÅÒÔ¼°ÎҵĻظ´£º
ÄúºÃ£¡ÔËËã·û<<×÷Ϊλ²Ù×÷ÖеĸßЧµÄ²Ù×÷£¬µ«ÎÒÓöµ½Ò»¸öÎÊÌ⣺ÏÂÃæÔÚVC»·¾³Ï·¢ÏÖÒ»¸öºÜ²»Ã÷°×µÄµØ·½£¬ÏÂÃæ±ê×¢¡£
#include <stdio.h>
void main()
{
   unsigned int i,j;
   i=35;
   //ΪʲôÏÂÃæÁ½¸ö×óÒÆ²Ù×÷½á¹û²»Ò»Ñù£¿
   j=1<<i;  // jΪ8
   j=1<<35; // jΪ0
}
²»ÖªÊÇÄÄÀïûÓÐÀí½â¶Ô¡£
Ô­ÒòÊÇÕâÑùµÄ£ºi=35;j=1<<i;ÕâÁ½¾äÔÚVCûÓÐ×öÓÅ»¯µÄÇé¿öÏ£¬½«±»±àÒë³ÉÏÂÃæµÄ»úÆ÷Ö¸Á
mov dword ptr [i],23h
mov eax,1
mov ecx,dword ptr [i]
shl eax,cl
mov dword ptr [j],eax
ÔÚshlÒ»¾äÖУ¬eax=1£¬cl=35¡£¶øIntel CPUÖ´ÐÐshlÖ¸Áîʱ£¬»áÏȽ«clÓë31½øÐÐand²Ù×÷£¬ÒÔÏÞÖÆ×óÒÆµÄ´ÎÊýСÓÚµÈÓÚ31¡£ÒòΪ35 & 31 = 3£¬ËùÒÔÕâÑùµÄÖ¸ÁîÏ൱ÓÚ½«1×óÒÆ3룬½á¹ûÊÇ8¡£
¶øj=1<<35;Ò»¾äÊdz£ÊýÔËË㣬VC¼´Ê¹²»×öÓÅ»¯£¬±àÒëÆ÷Ò²»áÖ±½Ó¼ÆËã1<<35µÄ½á¹û¡£VC±àÒëÆ÷·¢ÏÖ35´óÓÚ31ʱ£¬¾Í»áÖ±½Ó½«½á¹ûÉèÖÃΪ0¡£ÕâÐдúÂë±àÒë²úÉúµÄ»úÆ÷Ö¸ÁîÊÇ£º
mov dword ptr [j],0
¶ÔÉÏÃæÕâÁ½ÖÖÇé¿ö£¬Èç¹û°ÑVC±àÒëÆ÷µÄÓÅ»¯¿ª¹Ø´ò¿ª£¨±ÈÈç±àÒë³ÉRelease°æ±¾£©£¬±àÒëÆ÷¶¼»áÖ±½Ó½«½á¹ûÉèÖÃΪ0¡£
ËùÒÔ£¬ÔÚC/C++ÓïÑÔÖУ¬ÒÆÎ»²Ù×÷²»Òª³¬¹ý½çÏÞ£¬·ñÔò£¬½á¹ûÊDz»¿ÉÔ¤ÆÚµÄ¡£
ÏÂÃæÊÇIntelÎĵµÖйØÓÚshlÖ¸ÁîÏÞÖÆÒÆÎ»´ÎÊýµÄ˵Ã÷£º
The destination operand can be a register or a memory location. The count operand can be an immediate value or register CL. The count is masked to 5 bits, which limits the count range to 0 to 31. A special opcode encoding is provided for a count of 1.


Ïà¹ØÎĵµ£º

C/C++ HOOK API£¨Ô­ÀíÉîÈëÆÊÎöÖ®

9Ô¶¼¿ì½áÊøÁË£¬Ö®Ç°Ò»Ö±Ã¦µ½Ð´×Ô¼ºµÄ¶«Î÷¼ÓÉÏÉϰࡣ»ù±¾Ã»ÓÐʱ¼äÑо¿Ï»ã±àºÍC C++·½ÃæµÄ¸ÐÐËȤµÄ¶«Î÷¡£ÔÙÔõô˵Â9Ô»¹ÊǵÃдһƪÈö£¬ÒÔºóÿÔÂÖÁÉÙһƪ°É¡£¸ø×Ô¼º¶¨ÁË£¬Ï£Íû´ó¼Ò¼à¶½¡£ºÙºÙ£¡
ÕâÆªÎÄÕ¾ÍÀ´Ì¸Ì¸Æ½³£ºÜ³£¼ûµÄHOOK¼¼Êõ£¬ÕâÀïÄØ¡£Ð´µÃ±È½Ï¼òµ¥£¬·½·¨ºÜ¶à¡£Ö»½²Ô­Àí£¡Ï£Íû´óÄñÃDZðÍÂÎÒ¿ÚË®¹þ - -¡£ºÃ£¡ÇÐÈëÕ ......

C/C++Ô¤´¦Àí ISO/ANSI C±ê×¼ÒëÎÄÓë×¢½â

<<ISO/ANSI C±ê×¼ÒëÎÄÓë×¢½â C/C++Ô¤´¦Àí²¿·Ö>>
ÄÚÈݼò½é£º±¾ÎĵµÍêÕû·­ÒëÁËC±ê×¼(99°æ)ÖÐÔ¤´¦ÀíºÍÏà¹ØÕ½ڵÄÄÚÈÝ£¬²¢ÔÚÐí¶à±ØÒªÖ®´¦¸½¼ÓÁË×¢½âºÍ³ÌÐòʾÀý£¬ÒÔ°ïÖú¶ÁÕßÀí½â±ê×¼Ô­ÎÄ£¬Í¬Ê±ÖÆ×÷ÁËÏêϸµÄÖÐÓ¢ÎÄË÷Òý±¸²é¡£
ÒëÕߣººúÑå
³ö´¦£ºhttp://blog.csdn.net/huyansoft
Èç¹û×ªÔØ£¬Çë±£ÁôÒëÕߺͳö´¦ÐÅÏ¢£¬Ð ......

×Ô¼ºÐ´µÄC/C++±àÒëÆ÷Doctors[Èí¼þ+Îĵµ]

×Ô¼ºÐ´µÄC/C++±àÒëÆ÷Doctors[Èí¼þ+Îĵµ]
http://blog.csdn.net/huyansoft/archive/2009/08/20/4464772.aspx
¸üа汾1.0.1£º¸Ã°æ±¾½â¾öÁË֮ǰ1.0.0°æ±¾ÖÐÕÒ²»µ½Á´½Ó¿âlibc.libµÄÎÊÌ⣬ÒÔ¼°IDEϵã»÷Project²Ëµ¥³öÏÖµÄBUG¡£ÏÂÔØµØÖ·£ºhttp://download.csdn.net/source/1597132
Doctors±àÒëÆ÷ÄÚ²¿ÊµÏÖ
For version 1.0.1 ......

Luaµ÷ÓÃCº¯Êý

¸ù¾Ý¡¶programming in lua¡·µÚ26ÕµÄÄÚÈÝ£¬ÎÒ×ö³öÀ´µÄÈçÏ£º
 
 
1.
Ê×ÏÈ£¬ÎÒµÄLuaĿ¼Ϊ£ºD:\lua5.1\
»·¾³Îª windows ; VC++express edition 2008 ; Lua5.1.4 ; Notepad++
 
µ±È»£¬ÄãÐèÒªÔÚVC++2008ÖÐÅäÖúÃlua£º
 
 
 
ÕâÀïÏȲ»¶à×ö½âÊÍ£¬¼ÙÉèÄãÒѾ­ÅäÖúÃÁË¡£
 
2.
& ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ