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
Ïà¹ØÎĵµ£º
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 ......
CÓïÑԵijõѧÕß³£·¸µÄÒ»¸öʧÎóÊǵ÷ÓÃϵͳ»òµÚÈý·½APIʱÍüÁËÔÚº¯ÊýÉùÃ÷Öбê×¢WINAPIµ÷Ó÷½Ê½£¬¶ø²ËÄñC++³ÌÐòԱҲÿÿÀ§»óΪʲô³ÉÔ±º¯Êý±ØÐëָʾΪCALLBACKÔÙÌí¼Óstatic¹Ø¼ü×Ö²ÅÄÜ×÷Ϊ»Øµ÷º¯Êý¡£ÔÚx86ϵͳÖУ¬´æÔÚ¶àÖÖº¯Êýµ÷ÓÃÔ¼¶¨¡£Èç¹ûµ÷ÓÃÕßÓë±»µ÷ÓÃÕß²ÉÓò»Í¬µÄµ÷ÓÃÔ¼¶¨£¬ºÜ¿ÉÄܵ¼Ö¶ÑÕ»ÆÆ»µ¡¢·Ç·¨·ÃÎʵÈÖÂÃü´íÎó¡£
ҲР......
1.´óβ(big_endian)Сβ(little_endian)µÄÎÊÌâ
»ùÓÚWebµÄ²âÊÔÈí¼þÊÇÓÉC++Êý¾Ý²É¼¯·þÎñÆ÷³ÌÐòºÍ¿Í»§¶ËJavaÏÔʾ³ÌÐòÁ½²¿·Ö¹¹³É£¬Ç°ÕßÓÃC++£¬ºóÕßJavaÓïÑÔ£¬´æÔÚÊý¾ÝÒÆÖ²ÎÊÌâ¡£ÒòΪ
ÔÚ¼ÆËã»úϵͳÖУ¬µ±°üº¬Êý×ֵĶþ½øÖÆÎļþ´ÓÒ»¸ö½á¹¹ÒƵ½ÁíÒ»½á¹¹Ê±£¬¾Í³öÏÖ´óβСβÎÊÌâ¡£²»Í¬CPUÔÚ¶à×Ö½ÚÊý£¨ÈçËÄ×Ö½Úint£©´æ´¢Ê±ÓÐÁ½ÖÖ·½·¨ ......
ÕÆÎÕÎı¾Îļþ¶ÁдµÄ·½·¨
Á˽â¶þ½øÖÆÎļþµÄ¶Áд·½·¨
C++ÎļþÁ÷£º
fstream¡¡¡¡// ÎļþÁ÷
ifstream¡¡ // ÊäÈëÎļþÁ÷
ofstream¡¡ // Êä³öÎļþÁ÷
//´´½¨Ò»¸öÎı¾Îļþ²¢Ð´ÈëÐÅÏ¢
//ͬÏòÆÁÄ»ÉÏÊä³öÐÅÏ¢Ò»Ñù½«ÐÅÏ¢Êä³öÖÁÎļþ
#include<iomanip.h>
#include<fstream.h>
void main()
{
¡¡¡¡ofstream f1("d:\\ ......
1.2 µ¥Ôª²âÊÔµÄÄ¿±êºÍ·½·¨
µ¥Ôª²âÊÔµÄÄ¿±êÊÇÊ²Ã´ÄØ£¿¾ÍÊÇÍêÕû¼ì²â´úÂëµ¥ÔªµÄ¹¦ÄÜÂß¼¡£ÕÒ³ö´úÂëµ¥Ôª±¾ÉíµÄËùÓй¦ÄÜÂß¼´íÎ󣬾ßÌåÀ´Ëµ£¬¾ÍÊǼì²â¶ÔÊý¾ÝµÄ¸÷ÖÖ·ÖÀàÊÇ·ñ¿¼ÂÇÈ«Ãæ£¬´¦ÀíÊÇ·ñÕýÈ·¡£µ¥Ôª²âÊÔ²¢²»ÊÇÓÃÀ´´úÌæÏµÍ³²âÊÔ¡¢ÐÔÄܲâÊԵģ¬ËüµÄÄ¿±êÏ൱Ã÷È·£¬¾ÍÊǼì²â´úÂëµ¥Ôª±¾ÉíµÄ¹¦ÄÜÂß¼´íÎó¡£
& ......