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

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


Ïà¹ØÎĵµ£º

entry point to c/c++ or Fortran MEX file

http://www.mathworks.com/access/helpdesk/help/techdoc/apiref/mexfunction.html
mexFunction (C and Fortran) -
Entry point to C/C++ or Fortran MEX-file
C Syntax
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs,
const mxArray *prhs[]);
Fortran
Syntax
subrouti ......

Õë¶ÔǶÈëʽSoCÓ¦ÓÃC±à³ÌÓÅ»¯¼°±àÒëÆ÷Ô­Àí

       ¿ª·¢ÔËÐÐÔÚSoCÄÚµÄǶÈëʽ´¦ÀíÆ÷Äں˵ijÌÐòʱ£¬¹¤³ÌʦÓÐÁ½¸öÖ÷ҪĿµÄ£ºÔËÐеÃ×ã¹»¿ì£¬Ê¹´¦ÀíÆ÷ÔËÐÐµÄÆµÂʽµµ½×îµÍ£»ÏûºÄ¾¡Á¿ÉÙµÄÄڴ棬ʹÄڴ濪Ïú½µµ½×îС¡£ 
      
         ¶ÔÓÚ²»Í¬µÄÏ ......

C/C++µ¥Ôª²âÊÔÀíÂÛ¾«Òª£¨¶þ£©

1.2 µ¥Ôª²âÊÔµÄÄ¿±êºÍ·½·¨
    µ¥Ôª²âÊÔµÄÄ¿±êÊÇÊ²Ã´ÄØ£¿¾ÍÊÇÍêÕû¼ì²â´úÂëµ¥ÔªµÄ¹¦ÄÜÂß¼­¡£ÕÒ³ö´úÂëµ¥Ôª±¾ÉíµÄËùÓй¦ÄÜÂß¼­´íÎ󣬾ßÌåÀ´Ëµ£¬¾ÍÊǼì²â¶ÔÊý¾ÝµÄ¸÷ÖÖ·ÖÀàÊÇ·ñ¿¼ÂÇÈ«Ãæ£¬´¦ÀíÊÇ·ñÕýÈ·¡£µ¥Ôª²âÊÔ²¢²»ÊÇÓÃÀ´´úÌæÏµÍ³²âÊÔ¡¢ÐÔÄܲâÊԵģ¬ËüµÄÄ¿±êÏ൱Ã÷È·£¬¾ÍÊǼì²â´úÂëµ¥Ôª±¾ÉíµÄ¹¦ÄÜÂß¼­´íÎó¡£
& ......

´î½¨eclipseϵÄcºÍc++¿ª·¢»·¾³


 
ÎÒÃÇÐèÒªÒ»¸öcdt£¬Õâ¸ö¿ÉÒÔÔÚEclipse¹ÙÍøÏÂÔØ¡£
ÎÒÃÇÐèÒªMinGW——C/C++±àÒëÆ½Ì¨£¬ÏÂÔØºóÐèÒª°²×°£¬Í¬Ê±Ñ¡ÖÐg++¡¢MinGW Make£¬Í¬Ê±ÉèÖû·¾³±äÁ¿£¬½«%MinGW_HOME%\binÉèÖõ½PATHÖУ¬È»ºóÎÒÃÇ¿ÉÒÔͨ¹ýÃüÁîÐÐÇû÷gcc£¬¿´ÊÇ·ñÓÐЧ¹û¡£
ÎÒÃÇÐèÒªgdb——C/C++µ÷ÊÔÆ½Ì¨£¬ÏÂÔØºó°²×°£¬Ä¬Èϵ½MinGW_ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ