"extern C", ÄãÕæµÄ¶®ÁËÂð£¿
ÔÚc++ primeÊéÖп´µ½¹ý£¬ÔÚDLLºÍlibÖп´µ½¹ý£¬µ«ÊÇÿ´Î¿´¹ý¾Í²»ÇóÉõ½âµØÒ»É¨¶ø¹ý¡£ÐÄÀïÖªµÀÓÐextern cÕâ¸öÓï¾ä£¬È´²»ÖªµÀ¸ÃÓÃÔÚÄÄÀÓÖÄÜÆðµ½Ê²Ã´×÷Óᣰ¦£¬ÏëÏë×Ô¼ºÒ²ËãÊÇд¹ý²»ÉÙCODEµÄÈËÁË£¬¿ÉÕâÖÖÑÛ¸ßÊֵ͵Ä벡ȴ´Óû¸Ä±ä¹ý¡£½ñÌìͻȻÏëÆðexternÕâ¸ö¹Ø¼ü×Ö£¬Ëì¾ö¶¨²»ÄÜÔÙÕâôÀË·Ñʱ¼äÁË¡£¿ª¶¯google£¬ÈËÈâÁËÒ»°ÑexternÕâС×Ó£¬ÒªËµËÑË÷ÒýÇæÕæÊǸöºÃ¶«Î÷£¬Ê²Ã´¶¼ÌÓ²»¹ýÈ˼ҵÄÑÛ¾¦¡£
½ñÌì¾ÍÔÚÕâÀï°ÑexternÕâÀÏС×Ó¸øËµÃ÷°×ÁË£¬Ò²ËãÓиö°×Ö½ºÚ×Ö°É¡£
Ê×ÏÈ£¬ÄãÒª¸ãÃ÷°×£¬externÊÇC++µÄ¹Ø¼ü×Ö¡£ÄÇôΪʲôC++»áÓÐÕâ¸ö¹Ø¼ü×ÖÄØ£¿
¸÷λ¿´¹ÙÓ¦¸ÃÖªµÀ£¬C++¶ÔÏàͬº¯ÊýÃû£¬µ«ÊDz»Í¬º¯Êý²ÎÊýµÄº¯ÊýÓÐÖØÔØÕâ¸ö¹¦Äܰɣ¬bingo! hey man, you got the key! ¶ÔÁË£¬C++±àÒëÆ÷»áÔÚ±àÒëʱ°ÑÖØÔØµÄº¯ÊýµÄº¯ÊýÃûÐÞ¸ÄΪ²»Í¬µÄº¯ÊýÃû£¬Õâ¾ÍÊÇΪɶC++Äܹ»½øÐÐÖØÔØµÄÔÒò¡£¾Ù¸öÀý×Ó°É¡£
int a(char)
int a(int)
int a(double)...
ÖªµÀ±àÒëºó£¬ÕâЩº¯Êýa»á±ä³ÉʲôÂð£¿ÎÒÒ²²»ÖªµÀ£¬Ó¦¸Ã²»Í¬µÄC++±àÒëÆ÷Óв»Í¬µÄʵÏÖ·½Ê½£¬ÓпÉÄÜ»áÊÇÕâÑùµÄÑù×Ó£ºa_char_xxx,a_in_xxx,a_double_xxx¡£ÕâÊÇÔÀí£¬¸÷λÓÐÒÉÎʵģ¬ÎÒÒ²¾ÍÖ»ÄܽâÊ͵½Õâ¸öµØ²½ÁË£¬¸ü½øÒ»²½µØÀí½â£¬¿´¹ÙÃÇ¿ÉÒԲο¼ºî½Ý´óÉñ·ÒëµÄ¡¶ÉîÈë̽¾¿C++¶ÔÏóÄ£ÐÍ¡·£¬ÀïÃæÓиüÏêϸµÄ³ÂÊö¡£
ÒÔÉÏÊÇ´æÔÚexternÕâ¸ö¹Ø¼ü×ÖµÄÔÒò¡£µ«ÊÇ´æÔÚexternÕâ¸ö¹Ø¼ü×ÖµÄ×÷ÓÃÓÐÄÄÐ©ÄØ£¿
ºÜ¼òµ¥À²£¬"extern c"µÄ×÷ÓþÍÊǸæËßC++±àÒëÆ÷²»ÒªÔÙ¸øÎҸı亯ÊýÃûÁË£¬ÎÒ¾ÍÒªÔÑùµÄº¯ÊýÃû£¬Ð»Ð»¡£
»¹ÊÇÉÏÃæµÄÀý×Ó£º
extern "c"
{
int a(char);
}
ÕâÑù£¬C++±àÒëÆ÷¾Í»á×𾴵ػشðÄ㣬“ºÃµÄ£¬Ö÷ÈË£¬ÌýÄãµÄ”¡£±àÒëºóµÄ·ûºÅ»¹ÊÇa£¬¶ø²»ÊÇa_char_xxxµÈµÈ¡£
ÄÇôÕâ¸öʱºò£¬Äã¿ÉÄÜ»áÎÊ£¬ÎÒÖªµÀÁË£¬¿ÉÊÇÕâÑù×öÓÐʲôÓÃÄØ£¿¾ÍÊDz»¼Óextern£¬ÎÒ»¹ÊÇÄܱàÒëͨ¹ý°¡£¬ÎÒ»¹ÊÇÄÜÕý³£Ö´Ðа¡¡£Ã»´í£¬ÕâЩÄã¶¼ÄÜ×öµ½£¬µ«ÊÇ£¬µ±ÕâЩº¯Êý±»·â×°ÔÚÒ»¸ö¿âÀïÄØ£¿¶ø
Ïà¹ØÎĵµ£º
»Ø¹Ë֮ǰµÄƪ·ù£¬CÓïÑÔµÄÖ÷Ì岿·Ö»ù±¾ÒѾ½éÉÜÍêÁË¡£Ö®ËùÒÔûÓнéÉÜC++µÄÏà¹ØÌØÐÔÊÇÒòΪÔÚ֮ǰµÄÎÄÕÂÖÐCºÍC++ÔÚÕâЩ·½Ãæ¶¼Óй²ÐÔ£¬ËùÒÔÔÚÃæÏò¶ÔÏó֮ǰ¡£ÎÒÃÇÏȰÑÕâЩ¹²ÐÔ¸ø½éÉÜÍê¡£Ò²¾ÍÊÇ˵ÔÚ½éÉÜÃæÏò¶ÔÏó֮ǰ£¬ËùÓеÄÎÄÕ¶¼ÊÇCC++Öж¼ÄÜʹÓõġ£´ÓÕâµãÉÏÀ´¿´£¬ÏÖÔÚÕý¼«Á¦·Ü¶·ÓÚC++Õ½ÏßÉϵijõѧÕß»¹ÊǺÜÓÐÓô¦µÄ¡£
±¾Æª¼ ......
µ±³¢ÊÔ´ÓÎļþ¶ÁÈë×Ö·ûʱ£¬getc()º¯Êý»á·µ»ØEOF£¬ËùÒÔ³ÌÐò»áÔÚÏÂÒ»´Î¶Áȡʱ²Å»á·¢ÏÖÎļþ½áβ¡£´Ëʱ³ÌÐòÔÚÊÔͼ¶ÁÈ¡¿ÕÎļþ£¬¿ÉÄܻᷢÉúһЩÎÊÌâ¡£ËùÒÔÓ¦µ±ÔÚÑ»·Èë¿Ú´¦½øÐÐÅжϡ£
int ch;
FILE * fp;
fp = fopen ("test","r");
while ((ch = getc(fp) != EOF)
{
putchar (ch);
} ......
¹ØÓÚ#ifdef __cplusplus extern
ÃæÊÔʱ±»Îʵ½¹ý£¬²»ÉõÃ÷ÁË£¬ÍøÉϰٶÈһϣ¬ÕûºÏÁËÁ½¸öÈÊÐÖµÄÎÄÕ£¬ÈçÏ¡£:-)
ʱ³£ÔÚcppµÄ´úÂëÖ®Öп´µ½ÕâÑùµÄ´úÂë:
#ifdef __cplusplus
extern "C" {
#endif
//Ò»¶Î´úÂë
#ifdef __cplusplus
}
#endif
¡¡¡¡
ÕâÑùµÄ´úÂëµ½µ×ÊÇʲôÒâË¼ÄØ£¿Ê×ÏÈ£¬ ......
1.ÏÂÔØlinux kernelÔ´´úÂë
µ½http://www.kernel.org/ÏÂÔØlinuxÄÚºËÔ´´úÂë,ÕâÀïÎÒÃÇʹÓÃ2.6.24.4µÄÄÚºË.
½âѹlinux-2.6.24.4.tar.bz2
[matt@localhost GEC2410]$ tar -xvjf linux-2.6.24.4.tar.bz2
[matt@localhost GEC2410]$ cd linux-2.6.24.4
2.ÐÞ¸ÄMakefile,ÉèÖý»²æ±àÒëÆ÷
ARCH ?= arm
CROSS_COMPILE ......