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

extern "C"µÄ×÷ÓÃ


Ò»¡¢ÐÞÊÎÃû£¨Decorated Name£©
C/C++³ÌÐòÖеĺ¯ÊýÔÚÄÚ²¿ÊÇͨ¹ýÐÞÊÎÃûÀ´±êʶµÄ¡£ÐÞÊÎÃûÊÇÔÚº¯Êý¶¨Òå»òÔ­ÐͱàÒë½×¶ÎÓɱàÒëÆ÷´´½¨×Ö·û´®¡£µ±ÄãÔÚLINKµÈ¹¤¾ßÖÐÒªÖ¸¶¨Ò»¸öº¯ÊýÃûʱ£¬»áÓõ½ÐÞÊÎÃû¡£
1¡¢Ê¹ÓÃÐÞÊÎÃû£º
´ó¶àÊýÇé¿öÏ£¬Äã²»±ØÖªµÀº¯ÊýµÄÐÞÊÎÃûÊÇʲô¡£Á¬½ÓÆ÷µÈ¹¤¾ßͨ³£¶¼ÄÜ´¦Àíº¯ÊýδÐÞÊεÄÃû×Ö¡£È»¶ø£¬ÔÚÓÐЩÇé¿öÏ£¬Äã¿ÉÄÜÐèÒªÖ¸¶¨º¯ÊýµÄÐÞÊÎÃû¡£¶ÔÓÚC++ÖØÔØº¯ÊýºÍÌØ¶¨µÄ³ÉÔ±º¯Êý£¨È磺¹¹Ô캯ÊýºÍÎö¹¹º¯Êý£©£¬Äã±ØÐëÖ¸¶¨ÕâЩº¯ÊýµÄÐÞÊÎÃû£¬ÒÔ±ãÁ¬½ÓÆ÷µÈ¹¤¾ßÄܹ»Æ¥ÅäÃû×Ö¡£Í¬Ê±£¬ÄãÒ²±ØÐëÔÚÄÇЩÒýÓÃc»òc£«£«º¯ÊýÃûµÄ»ã±àÔ´ÎļþÖÐʹÓÃÐÞÊÎÃû¡£
2¡¢²é¿´ÐÞÊÎÃû£º
Èç¹ûÄã±àÒëÁËÒ»¸öÔ´Îļþ£¬¸ÃÔ´ÎļþÖаüº¬Á˺¯Êý¶¨Òå»òÔ­ÐÍ£¬Äã¿ÉÒÔ»ñµÃº¯ÊýµÄÐÞÊÎÃûÐÎʽ¡£
(1)ÓñàÒëÆ÷ÁÐ±í£¨compiler listing£©À´²é¿´£º
   (i)ͨ¹ý½«ÁбíÎļþÀàÐͱàÒëÆ÷Ñ¡Ïî(/FA[c|s]) ÉèÖÃΪÏÂÃæÖеÄÒ»ÖÖ£¬À´²úÉúÁбíÎļþ£ºAssembly with Machine Code (/FAc); Assembly with Source Code (/FAs); Assembly, Machine Code, and Source (/FAcs).
   (ii)ÔÚ²úÉúµÄÁбíÎļþÖУ¬ÕÒµ½°üº¬Î´¾­ÐÞÊεĺ¯Êý¶¨ÒåµÄÐС£
   (iii)²éÕÒÇ°ÃæÒ»ÐС£PROC NEAR ÃüÁî±êǩǰ¾ÍÊǺ¯ÊýÃû¾­¹ýÐÞÊκóµÄÐÎʽ¡£
(2)ʹÓÃDUMPBIN¹¤¾ßÀ´²é¿´£º
  ÔÚ.OBJ»ò.LIBÉÏÔËÐÐ DUMPBIN£¬Ê¹ÓÃ/SYMBOLSÑ¡Ïî¡£ÔÚÊä³öÖвéÕÒδ¾­ÐÞÊεĺ¯Êý¶¨Òå¡£ºóÃæ¸ú×ŵľÍÊǾ­¹ýÐÞÊεĺ¯ÊýÃû£¬ÓÃÔ²À¨ºÅÀ¨ÆðÀ´µÄ¡£
¶þ¡¢Ìæ´úÁ¬½Ó˵Ã÷£º
Èç¹ûÔÚc++Öбàдһ¸ö³ÌÐòÐèÒªÓõ½cµÄ¿â£¬ÄǸÃÈçºÎ£¿Èç¹ûÕâÑùÉùÃ÷Ò»¸öcº¯Êý£º
void f(int a,char b);
c++±àÒëÆ÷¾Í»á½«Õâ¸öÃû×Ö±ä³ÉÏàÓ¦µÄÐÞÊÎÃû£¬±ÈÈ磺?f@@YAXHD@Z¡£
È»¶ø£¬c±àÒëÆ÷±àÒëµÄ¿âµÄÄÚ²¿º¯ÊýÃû£¨Á¬½ÓÆ÷ʹÓã©ÊÇÍêÈ«²»Í¬µÄ¡£ÕâÑù£¬µ±c++Á¬½ÓÆ÷Á¬½ÓcµÄº¯Êý¿âʱ£¬½«»á²úÉúÄÚ²¿Ê¹Óú¯Êý²»Æ¥Åä¡£
¹Ê£¬c++ÖÐÌṩÁËÒ»¸öÌæ´úÁ¬½Ó˵Ã÷(alternate linkage specification)£¬ËüÊÇͨ¹ýÖØÔØextern¹Ø¼ü×ÖÀ´ÊµÏֵġ£
externºó¸úÒ»¸ö×Ö·û´®À´Ö¸¶¨ÏëÉùÃ÷µÄº¯ÊýµÄÁ¬½ÓÀàÐÍ£¬ºóÃæÊǺ¯ÊýÉùÃ÷,±ÈÈ磺
 extern "C" void f(int a,char b);
ÕâÑù£¬¾ÍÊǸæËß±àÒëÆ÷ÊÇcÁ¬½Ó£¬ÕâÑù¾Í²»»áת»»º¯ÊýÃûÁË¡£´ËÀýÖУ¬±àÒëºóµÄÄÚ²¿º¯ÊýÃûÊÇ_f¡£


Ïà¹ØÎĵµ£º

ANSI C Óë K&R C

CÓïÑÔÓÉDennis M. RitchieÔÚ1973ÄêÉè¼ÆºÍʵÏÖ¡£´ÓÄÇÒÔºóʹÓÃÕßÖð½¥Ôö¼Ó¡£µ½1978ÄêRitchieºÍBellʵÑéÊÒµÄÁíһλ³ÌÐòר¼ÒKernighanºÏдÁËÖøÃûµÄ¡¶The C Programming Language¡·£¬½«CÓïÑÔÍÆÏòÈ«ÊÀ½ç£¬Ðí¶à¹ú¼Ò¶¼³öÁËÒë±¾£¬¹úÄÚÓÐһЩCÓïÑÔÊé¾ÍÊÇÕâ±¾ÊéµÄ·­Òë»òÕß±àÒë¡£ÓÉÕâ±¾Ê鶨ÒåµÄCÓïÑÔºóÀ´±»ÈËÃdzÆ×÷ K&R C¡£
Ëæ×ÅCÓ ......

GNU C __attribute__ »úÖÆ¼ò½é

GNU C __attribute__ »úÖÆ¼ò½é
2006-06-17 13:54:00
¡¡±êÇ©£º¡¡¡¡¡¡[ÍÆË͵½¼¼ÊõȦ]
ͻ񻣼
ÔÚѧϰlinuxÄں˴úÂ뼰һЩ¿ªÔ´Èí¼þµÄÔ´Â루È磺DirectFB£©£¬¾­³£¿ÉÒÔ¿´µ½ÓйØ__attribute__µÄÏà¹ØÊ¹Óᣱ¾ÎĽáºÏ×Ô¼ºµÄѧϰ¾­Àú£¬½ÏΪÏêϸµÄ½éÉÜÁË__attribute__Ïà¹ØÓï·¨¼°ÆäʹÓá£
-------------------------------------- ......

CÖжÁÎļþ

À´×Ô£ºhttp://blogger.org.cn/blog/more.asp?name=binaryluo&id=11408
CÎļþ²Ù×÷Óöµ½µÄ×´¿ö
1.½«Ò»¸öÎļþ¶Áµ½ÁíÒ»¸öÎļþ£¬ÓÓ(ch = getc(fp)) != EOF”À´ÅжÏÎļþÊÇ·ñ½áÊø£¬Èç¹ûÎļþÊÇȫӢÎÄÎı¾µÄ»°¾ø¶ÔûÎÊÌ⣬ÐÂÎļþµÄ´óСºÍÔ­Îļþ´óСһÑù£»µ«ÊÇÈç¹ûÊÇһЩÓÐÖÐÎÄ×Ö·û»òÕßÊǶþ½øÖÆ ......

C:Îļþ²Ù×÷ ¶Áд×Ö·ûÓë¶ÁдÐÐ(£¡£¡£¡ºÃ)

À´×Ô£ºhttp://zhangjunhd.blog.51cto.com/113473/100299 
1.¶Áд×Ö·ûº¯Êýputc()Óëgetc()
ÕâÁ½¸öº¯ÊýÀàËÆÓÚputchar()Óëgetchar()º¯Êý¡£¼ÙÉèfpÊÇÒ»¸öFILEÖ¸Õ룬chÊÇÒ»¸ö×Ö·û±äÁ¿£¬
ch = getc(fp);// ch = getchar();
putc(ch,fp);// putchar(ch);
½«ÎļþÄÚÈÝ(°´×Ö·û)Êä³öµ½±ê×¼Êä³öµÄCʵÏÖ£º
#include <stdio.h ......

CºÍPython³ÌÐòÔ±µÄJavaScriptѧϰָÄÏ£¨Ò룩


write by ¾ÅÌìÑãôá(JTianLing) -- blog.csdn.net/vagrxie
ÌÖÂÛÐÂÎÅ×é¼°Îļþ
 Ô­ÎÄÀ´×Ô£º¡¶JavaScript for C & Python programmers
¡·£¬¾­¹ý×÷ÕßCanisÔÊÐíºó·­Ò룬¼´Ê¹×ªÔØÇ븽´ø´ËÁ´½Ó¡£

ǰÑÔ£ººÜÉٸɷ­ÒëµÄÊÂÇ飬ÀÛ£¬ÐÁ¿à£¬²»ÄÜ·¢»Ó£¬µäÐ͵ķÑÁ¦²»Ìֺã¬×î½üÎÞÁÄ£¬ÏëÔÚÍøÒ³ÉÏÏÔʾ¶¯»­£¨ÒòΪCSDNÌ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ