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
Ïà¹ØÎĵµ£º
CÓïÑԵijõѧÕß³£·¸µÄÒ»¸öʧÎóÊǵ÷ÓÃϵͳ»òµÚÈý·½APIʱÍüÁËÔÚº¯ÊýÉùÃ÷Öбê×¢WINAPIµ÷Ó÷½Ê½£¬¶ø²ËÄñC++³ÌÐòԱҲÿÿÀ§»óΪʲô³ÉÔ±º¯Êý±ØÐëָʾΪCALLBACKÔÙÌí¼Óstatic¹Ø¼ü×Ö²ÅÄÜ×÷Ϊ»Øµ÷º¯Êý¡£ÔÚx86ϵͳÖУ¬´æÔÚ¶àÖÖº¯Êýµ÷ÓÃÔ¼¶¨¡£Èç¹ûµ÷ÓÃÕßÓë±»µ÷ÓÃÕß²ÉÓò»Í¬µÄµ÷ÓÃÔ¼¶¨£¬ºÜ¿ÉÄܵ¼Ö¶ÑÕ»ÆÆ»µ¡¢·Ç·¨·ÃÎʵÈÖÂÃü´íÎó¡£
ҲР......
×÷ÕߣºËᦻª e-mail:21cnbao@21cn.com
1. ÒýÑÔ
Ö¸ÕëÊÇC/C++ÓïÑÔµÄÌØÉ«£¬¶øÊý×éÃûÓëÖ¸ÕëÓÐÌ«¶àµÄÏàËÆ£¬ÉõÖÁºÜ¶àʱºò£¬Êý×éÃû¿ÉÒÔ×÷ΪָÕëʹÓá£ÓÚÊǺõ£¬ºÜ¶à³ÌÐòÉè¼ÆÕ߾ͱ»¸ãºýÍ¿ÁË¡£¶øÐí¶àµÄ´óѧÀÏʦ£¬ËûÃÇÔÚCÓïÑԵĽÌѧ¹ý³ÌÖÐÒ²´íÎóµÃ¸øÑ§Éú½²½â£º“Êý×éÃû¾ÍÊÇÖ¸Õ딡£ºÜÐÒÔË£¬ÎҵĴóѧÀÏ ......
ÕÆÎÕÎı¾Îļþ¶ÁдµÄ·½·¨
Á˽â¶þ½øÖÆÎļþµÄ¶Áд·½·¨
C++ÎļþÁ÷£º
fstream¡¡¡¡// ÎļþÁ÷
ifstream¡¡ // ÊäÈëÎļþÁ÷
ofstream¡¡ // Êä³öÎļþÁ÷
//´´½¨Ò»¸öÎı¾Îļþ²¢Ð´ÈëÐÅÏ¢
//ͬÏòÆÁÄ»ÉÏÊä³öÐÅÏ¢Ò»Ñù½«ÐÅÏ¢Êä³öÖÁÎļþ
#include<iomanip.h>
#include<fstream.h>
void main()
{
¡¡¡¡ofstream f1("d:\\ ......
http://topic.csdn.net/u/20100413/09/ffc0fcd5-c3c1-4a15-b5a2-f1bf65f50caa.html?21874
C/C++ code
typedef struct _VSCSIDISK_COMMON_DEVICE_EXTENSION
{
BOOLEAN IsPdo;
} VSCSIDISK_COMMON_DEVICE_EXTENSION, *PVSCSIDISK_COMMON_DEVICE_EXTENSION;
typedef struct _VSCSIDISK_PDO_DEVI ......