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

¸ßˮƽC³ÌÐòÔ±ÐÞÑø

ÔÚ´óÐÍCÓïÑÔÏîÄ¿¹¤³Ì»òÕßlinuxÄÚºËÖÐÎÒÃǶ¼»á¾­³£¼ûµ½Á½¸öFASTCALLºÍarmlinkage
Á½¸ö±êʶ·û(ÐÞÊηû)£¬ÄÇôËüÃǸ÷ÓÐʲô²»Í¬ÄØ£¿½ñÌì¾Í¸ø´ó¼Ò¹²Í¬·ÖÏíÒ»ÏÂ×Ô¼ºµÄÐĵÃ.
     ´ó¼Ò¶¼ÖªµÀÔÚ±ê×¼CϵÖк¯ÊýµÄÐβÎÔÚʵ¼Ê´«Èë²ÎÊýµÄʱºò»áÉæ¼°µ½²ÎÊý´æ·ÅµÄÎÊÌ⣬ÄÇôÕâЩ²ÎÊý´æ·ÅÔÚÄÄÀïÄØ£¿ ÓÐÒ»¶¨ÀíÂÛ»ù´¡µÄÅóÓÑÒ»¶¨»á¿Ï¶¨µØ»Ø´ð£ºÕâЩº¯Êý²ÎÊýºÍº¯ÊýÄÚ²¿¾Ö²¿±äÁ¿Ò»Æð±»·ÖÅäµ½Á˺¯ÊýµÄ¾Ö²¿¶ÑÕ»ÖУ¬ÕæµÄÊÇÕâÑùÂð£¿Æäʵ»¹ÓÐÀýÍâµÄÇé¿ö£º
   Ê×ÏÈ×÷Ϊlinux²Ù×÷ϵͳ,Ëü²»Ò»¶¨¾ÍÖ»ÔËÐÐÔÚX86ƽ̨ÏÂÃæ,»¹ÓÐÆäËûƽ̨ÀýÈçARM,PPC£¬´ï·ÒÆæµÈµÈ£¬ËùÒÔÔÚ²»Í¬µÄ´¦ÀíÆ÷½á¹¹Éϲ»Äܱ£Ö¤¶¼ÊÇͨ¹ý¾Ö²¿Õ»´«µÝ²ÎÊýµÄ£¬¿ÉÄÜ´Ëʱ¾ÍÓÐÅóÓѾͻáÎÊ£º²»·ÅÔÚÕ»ÖÐÄÜ·ÅÔÚÄÄÀïÄØ£¿ÊìϤARMµÄÅóÓÑÒ»¶¨ÖªµÀARM¶Ôº¯Êýµ÷Óùý³ÌÖеĴ«²Î¶¨ÒåÁËÒ»Ì×¹æÔò£¬½ÐATPCS£¨ÄڵؽÐAAPCS£©£¬¹æÔòÖÐÃ÷È·Ö¸³öARMÖÐR0-R4¶¼ÊÇ×÷ΪͨÓüĴæÆ÷ʹÓã¬ÔÚº¯Êýµ÷ÓÃʱ´¦ÀíÆ÷´ÓR0-R4ÖлñÈ¡²ÎÊý£¬ÔÚº¯Êý·µ»ØʱÔÙ½«ÐèÒª·µ»ØµÄ²ÎÊýÒ»´Î´æµ½R0-R4ÖУ¬Ò²¾ÍÊÇ˵¿ÉÒÔ½«º¯Êý²ÎÊýÖ±½Ó´æ·ÅÔڼĴæÆ÷ÖУ¬ËùÒÔΪÁËÑϸñÇø±ðº¯Êý²ÎÊýµÄ´æ·ÅλÖã¬ÒýÈëÁËÁ½¸ö±ê¼Ç£¬¼´asmlinkageºÍFASTCALL£¬Ç°Õß±íʾ½«º¯Êý²ÎÊý´æ·ÅÔÚ¾Ö²¿Õ»ÖÐ,ºóÕßÔòÊÇ֪ͨ±àÒëÆ÷½«º¯Êý²ÎÊýÓüĴæÆ÷±£´æÆðÀ´
    ÎÒÃÇÔÚËÑË÷һЩ¶îÍâµÄÏßË÷£¬ARMÖÐR0-R4ÓÃÓÚ´æ·Å´«Èë²ÎÊý£¬ÒþÔ¼¸æËßÎÒÃÇ£¬×÷Ϊ¸ßˮƽǶÈëʽϵͳ¿ª·¢Õߣ¬»òÕ߸ßˮƽCÓïÑÔ³ÌÐòÔ±£¬º¯ÊýµÄɾ³ý²»Ó¦¸Ã´óÓÚ5¸ö£¬ÄÇôÓÐÈ˾ͻᷴ¹ýÀ´ÎÊ£º³¬¹ý5¸öµÄÄÇЩ²ÎÊýÓÖºÎÈ¥ºÎ´Ó£¿ÎҵĻشðÊÇ£º´«Èë²ÎÊýÈç¹û³¬¹ý5¸ö£¬¶àÓàµÄ²ÎÊý»¹ÊDZ»´æ·Åµ½¾Ö²¿Õ»ÖУ¬´ËʱÓÐÈË¿ÉÄÜÓÖ»áÎÊ£º½«º¯Êý²ÎÊý´«Èë¾Ö²¿Õ»ÓÐʲô²»ºÃ£¿ ÎҵĻشðÊÇ£º±íÃæÉÏûʲô²»ºÃ£¬µ«ÊÇÈç¹ûÄãÊÇÒ»Ãû¾ßÓÐlinuxÄÚºËÐÞÑøµÄ³ÌÐòÔ±,Äã¾Í»áÒþÔ¼¼ÇµÃlinuxÖУ¬²»¹ÜÊÇϵͳµ÷Ó㬻¹ÊÇϵͳÏÝÚ嶼»áÒýÆðÓû§¿Õ¼äÏÝÈëÄں˿ռ䣬ÎÒÃÇÖªµÀ£¬ÏµÍ³¿Õ¼äµÄȨÏÞ¼¶ÊÇ0£¬Óû§¿Õ¼äµÄȨÏÞ¼¶Îª3£¬ÏµÍ³µ÷ÓôÓȨÏÞ¼¶Îª3µÄÓû§¿Õ¼äÏݵ½È¨ÏÞ¼¶Îª0µÄÄں˿ռ䣬±ØÈ»ÒýÆð¶ÑÕ»Çл»£¬linuxϵͳ½«´ÓÈ«¾ÖÈÎÎñ״̬ջTSSÖÐÕÒµ½Ò»¸öºÏÊʵÄÄÚºËÕ»ÐÅÏ¢±£´æ¸²¸Çµ±Ç°SP,SSÁ½¸ö¼Ä´æÆ÷µÄÄÚÈÝ£¬ÒÔÍê³É¶ÑÕ»Çл»£¬´Ëʱ´¦ÓÚÄں˿ռäËù¿´µ½µÄÕ»ÒѲ»ÊÇÓû§¿Õ¼äÄǸöÕ»£¬ËùÒÔÔÚµ÷ÓõÄʱºòѹÈëÓû§Õ»µÄÊý¾Ý¾ÍÔÚÏÝÈëÄں˵ÄÄǸö˲¼ä£¬±»ÖÍÁôÔÚÓû§¿Õ¼äÕ»£¬Äں˸ù±¾²»ÖªµÀËüµÄ´æÔÚÁË£¬ËùÒÔ×÷Ϊ°²È«¿¼ÂÇ»òÕß×÷Ϊ¸ßˮƽ³ÌÐòÔ±µÄÇÐÉíÐÞÑø³ö·¢£¬¶¼²»Ó¦¸ÃÏòϵͳµ÷Óü¶º¯Êý´«Èë¹ý¶àµÄ²ÎÊý¡£


Ïà¹ØÎĵµ£º

Visual Studio 2008 ÏÂÉú³ÉC/C++ »ã±à´úÂë

ÔÚÏîÄ¿ÊôÐÔÒ³ --> ÅäÖÃÊôÐÔ --> C/C++ --> Êä³öÎļþÀïÃ棬½«»ã±àÊä³öµÄÏÂÀ­Áбí´ÓÎÞÁбíÑ¡ÔñΪÄãÐèÒª»ã±àÊä³öµÄÄÚÈÝ£¬±ÈÈ瓽öÁгö³ÌÐò¼¯(/FA)”£¬Èçͼ1-1£¬Í¼1-2£º
 
ͼ1-1
 
ͼ1-2
------------------------------------------------------------------------------------------------ ......

ΧÆå´òÆ×Èí¼þÖÐ×Ô¶¯Ìá×Ó¹¦ÄܵÄʵÏÖ£¬C/C++Ô´Âë

±¾ÎÄÊ×·¢µØÖ·£ºhttp://blog.csdn.net/liigo/archive/2009/09/22/4582018.aspx
תÔØÇë×¢Ã÷³ö´¦£ºhttp://blog.csdn.net/liigo
×÷Õߣºliigo, 2009/09/22
¡¡¡¡ÔÚÏÂΧÆåʱ£¬µ±Ò»¸öÆå×ÓÂäµ½ÆåÅÌÉÏ£¬Ëü»á¶ÔÖÜΧ¶Ô·½Æå×ÓµÄËÀ»î²úÉúÓ°Ï죬Èç¹û¶Ô·½Æå×ÓûÓÐÆøÁË£¨ËÀÁË£©£¬±ØÐë´ÓÆåÅÌÉÏÄõô£¨Ìá×Ó£©¡£Õâ¸ö¹ý³ÌÌåÏÖµ½Î§ÆåÈí¼þÖУ¬¾ÍÐ ......

C/C++ÔËËã·ûµÄÓÅÏȼ¶


Precedence Operator Description Example Overloadable Associativity
1
::
Scope resolution operator
Class::age = 2;
no
none
2
()
()
[]
->
.
++
--
const_cast
dynamic_cast
static_cast
reinterpret_cast
typeid
Function call
Member initalization
Array access
Member access from ......

Ö÷Òª¹ØÓÚCµÄ±ê×¼»¯ÊäÊä³ö

ÍøÂçËѼ¯-×ÊÁÏ
¸ñʽ»¯ÊäÈëÊä³öº¯Êý
      Turbo C2.0 ±ê×¼¿âÌṩµÄÁ½¸ö¿ØÖÆ̨¸ñʽ»¯ÊäÈë¡¢ Êä³öº¯Êý£ºprintf( ) ¡¢scanf()¡£
      printf()º¯ÊýÓÃÀ´Ïò±ê×¼Êä³öÉ豸(ÆÁÄ»)дÊý¾Ý;
      scanf() º¯ÊýÓÃÀ´´Ó±ê×¼ÊäÈëÉ豸(¼ü ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ