C++ÖÐextern ¡°C¡±Ïê½â£¡£¡
Ò»Ö±ÖªµÀÔÚC++ÖÐÓÃextern “C” {
}µ÷ÓÃCÓïÑÔ£¬µ«ÊDz»ÖªµÀΪʲô£¬ËäȻҲ֪µÀ±àÒëÆ÷µÄÃüÃû¹æÔò£¬²»¹ýûÓÐÁªÏëµ½Õâ¸öÉÏÃæ£¬¿´µ½ÕâÆªÎÄÕ£¬²Å»ÐÈ»´óÎò¡£²»¹ý£¬ÒòΪ×Ô¼ºÒ»Ö±ÔÚlinuxÏÂʹ
ÓÃCÓïÑÔ£¬Ã»ÓÐʹÓÃC++µÄ¾ÑéµÄÔµ¹Ê°É£¬Ï£ÍûÒÔºóÄÜÓУ¬ÕâÑù²ÅÄÜÈÚ»á¹áͨ¡£
¹Ø¼üµã£ºº¯ÊýÖØÔØ£¬ÃüÃû¹æÔò
Ò»¡¢C++ÓëC»úÖÆ±àÒëºó£¬Ò²¾ÍÔÚ»ã±àÓïÑԽ׶Σ¬º¯ÊýÃûµÄ²»Í¬£º
ʱ³£ÔÚcppµÄ´úÂëÖ®Öп´µ½ÕâÑùµÄ´úÂë:
de>#ifdef __cplusplus
extern
“C
” {
#endif
//Ò»¶Î´úÂë
#ifdef __cplusplus
}
#endif de>
ÕâÑùµÄ´úÂëµ½µ×ÊÇʲôÒâË¼ÄØ£¿Ê×ÏÈ£¬__cplusplusÊÇcppÖеÄ×Ô¶¨Òåºê£¬ÄÇô¶¨ÒåÁËÕâ¸öºêµÄ»°±íʾÕâÊÇÒ»¶ÎcppµÄ´úÂ룬Ҳ¾ÍÊÇ˵£¬ÉÏÃæµÄ´úÂë
µÄº¬ÒåÊÇ:Èç¹ûÕâÊÇÒ»¶ÎcppµÄ´úÂ룬ÄÇô¼ÓÈëextern
“C
“{
ºÍ}
´¦
ÀíÆäÖеĴúÂë¡£
ÒªÃ÷°×ΪºÎʹÓÃextern
“C
“£¬»¹µÃ´ÓcppÖжԺ¯ÊýµÄÖØÔØ´¦Àí¿ªÊ¼ËµÆð¡£
ÔÚc
++ÖУ¬ÎªÁËÖ§³ÖÖØÔØ»úÖÆ£¬ÔÚ±àÒëÉú³ÉµÄ»ã±àÂëÖУ¬Òª¶Ôº¯ÊýµÄÃû×Ö½øÐÐһЩ´¦Àí£¬¼ÓÈë±ÈÈ纯ÊýµÄ·µ»ØÀàÐ͵ȵÈ.¶ø
ÔÚC
ÖУ¬Ö»ÊǼòµ¥µÄº¯ÊýÃû×Ö¶øÒÑ£¬²»»á¼ÓÈëÆäËûµÄÐÅÏ¢.Ò²¾ÍÊÇ˵:C
++ºÍC
¶Ô
²úÉúµÄº¯ÊýÃû×ֵĴ¦ÀíÊDz»Ò»ÑùµÄ.
±ÈÈçÏÂÃæµÄÒ»¶Î¼òµ¥µÄº¯Êý£¬ÎÒÃÇ¿´¿´¼ÓÈëºÍ²»¼ÓÈëextern
“C
“²úÉúµÄ»ã±à
´úÂë¶¼ÓÐÄÄЩ±ä»¯:
de>int f(void)
{
return 1;
} de>
ÔÚ¼ÓÈëextern
“C
“µÄʱºò£¬Ò²¾ÍÊÇÒÔcµÄ·½Ê½²úÉúº¯ÊýÃû£¬²úÉúµÄ»ã±à´úÂë
ÊÇ:
de>.file “test.cxx”
.text
.align 2
.globl _f
.def _f; .scl 2; .type 32; .endef
_f:
pushl %ebp
movl %esp£¬ %ebp
movl $1£¬ %eax
popl %ebp
ret de>
µ«ÊDz»¼ÓÈëÁËextern
“C
“Ö®ºó£¬Ò²¾ÍÊÇÒÔc£«£«µÄ·½Ê½²úÉúº¯ÊýÃû,²úÉúµÄ
»ã±à´úÂëÊÇ:
de>.file “test.cxx”
.text
.align 2
.globl __Z1fv
.def __Z1fv; .scl 2; .type 32; .endef
__Z1fv:
pushl %ebp
movl %esp£¬ %ebp
movl $1£¬ %eax
popl %ebp
ret de>
Á½¶Î»ã±à´úÂëͬÑù¶¼ÊÇʹÓÃgcc
-SÃüÁî²úÉúµÄ£¬ËùÓеĵط½¶¼ÊÇÒ»ÑùµÄ£¬Î¨¶ÀÊDzúÉúµÄº¯ÊýÃû£¬Ò»¸öÊÇ_f£¬Ò»¸öÊÇ__Z1fv¡£ÓÉÓÚC£«£«¾ßÓк¯ÊýÃûÖØÔØ¹¦ÄÜ£¬ËùÒÔÔÚ±àÒë½×¶ÎÔÚº¯ÊýÃûǰ
¼Óµã»¨@»òÕ߯äËû×Ö·û£¬ÕâÑù¿ÉÒÔ±£Ö¤ÖØÔصÄÕýÈ·ÐÔ¡£
¶þ¡¢ÊµÀý·ÖÎö£º
Ã÷°×Á˼ÓÈëÓë²»¼ÓÈëextern
“C
&ldqu
Ïà¹ØÎĵµ£º
¿ª·¢ÔËÐÐÔÚSoCÄÚµÄǶÈëʽ´¦ÀíÆ÷Äں˵ijÌÐòʱ£¬¹¤³ÌʦÓÐÁ½¸öÖ÷ҪĿµÄ£ºÔËÐеÃ×ã¹»¿ì£¬Ê¹´¦ÀíÆ÷ÔËÐÐµÄÆµÂʽµµ½×îµÍ£»ÏûºÄ¾¡Á¿ÉÙµÄÄڴ棬ʹÄڴ濪Ïú½µµ½×îС¡£
¶ÔÓÚ²»Í¬µÄÏ ......
1.´óβ(big_endian)Сβ(little_endian)µÄÎÊÌâ
»ùÓÚWebµÄ²âÊÔÈí¼þÊÇÓÉC++Êý¾Ý²É¼¯·þÎñÆ÷³ÌÐòºÍ¿Í»§¶ËJavaÏÔʾ³ÌÐòÁ½²¿·Ö¹¹³É£¬Ç°ÕßÓÃC++£¬ºóÕßJavaÓïÑÔ£¬´æÔÚÊý¾ÝÒÆÖ²ÎÊÌâ¡£ÒòΪ
ÔÚ¼ÆËã»úϵͳÖУ¬µ±°üº¬Êý×ֵĶþ½øÖÆÎļþ´ÓÒ»¸ö½á¹¹ÒƵ½ÁíÒ»½á¹¹Ê±£¬¾Í³öÏÖ´óβСβÎÊÌâ¡£²»Í¬CPUÔÚ¶à×Ö½ÚÊý£¨ÈçËÄ×Ö½Úint£©´æ´¢Ê±ÓÐÁ½ÖÖ·½·¨ ......
×÷ÕߣºËᦻª e-mail:21cnbao@21cn.com
1. ÒýÑÔ
Ö¸ÕëÊÇC/C++ÓïÑÔµÄÌØÉ«£¬¶øÊý×éÃûÓëÖ¸ÕëÓÐÌ«¶àµÄÏàËÆ£¬ÉõÖÁºÜ¶àʱºò£¬Êý×éÃû¿ÉÒÔ×÷ΪָÕëʹÓá£ÓÚÊǺõ£¬ºÜ¶à³ÌÐòÉè¼ÆÕ߾ͱ»¸ãºýÍ¿ÁË¡£¶øÐí¶àµÄ´óѧÀÏʦ£¬ËûÃÇÔÚCÓïÑԵĽÌѧ¹ý³ÌÖÐÒ²´íÎóµÃ¸øÑ§Éú½²½â£º“Êý×éÃû¾ÍÊÇÖ¸Õ딡£ºÜÐÒÔË£¬ÎҵĴóѧÀÏ ......
1.2 µ¥Ôª²âÊÔµÄÄ¿±êºÍ·½·¨
µ¥Ôª²âÊÔµÄÄ¿±êÊÇÊ²Ã´ÄØ£¿¾ÍÊÇÍêÕû¼ì²â´úÂëµ¥ÔªµÄ¹¦ÄÜÂß¼¡£ÕÒ³ö´úÂëµ¥Ôª±¾ÉíµÄËùÓй¦ÄÜÂß¼´íÎ󣬾ßÌåÀ´Ëµ£¬¾ÍÊǼì²â¶ÔÊý¾ÝµÄ¸÷ÖÖ·ÖÀàÊÇ·ñ¿¼ÂÇÈ«Ãæ£¬´¦ÀíÊÇ·ñÕýÈ·¡£µ¥Ôª²âÊÔ²¢²»ÊÇÓÃÀ´´úÌæÏµÍ³²âÊÔ¡¢ÐÔÄܲâÊԵģ¬ËüµÄÄ¿±êÏ൱Ã÷È·£¬¾ÍÊǼì²â´úÂëµ¥Ôª±¾ÉíµÄ¹¦ÄÜÂß¼´íÎó¡£
& ......
ÎÒÃÇÐèÒªÒ»¸öcdt£¬Õâ¸ö¿ÉÒÔÔÚEclipse¹ÙÍøÏÂÔØ¡£
ÎÒÃÇÐèÒªMinGW——C/C++±àÒëÆ½Ì¨£¬ÏÂÔØºóÐèÒª°²×°£¬Í¬Ê±Ñ¡ÖÐg++¡¢MinGW Make£¬Í¬Ê±ÉèÖû·¾³±äÁ¿£¬½«%MinGW_HOME%\binÉèÖõ½PATHÖУ¬È»ºóÎÒÃÇ¿ÉÒÔͨ¹ýÃüÁîÐÐÇû÷gcc£¬¿´ÊÇ·ñÓÐЧ¹û¡£
ÎÒÃÇÐèÒªgdb——C/C++µ÷ÊÔÆ½Ì¨£¬ÏÂÔØºó°²×°£¬Ä¬Èϵ½MinGW_ ......