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

extern "C" µÄÓÃÒâ

ǰЩÌ죬±à³ÌÐòÊÇÓõ½Á˺ܾÃÒÔǰдµÄC³ÌÐò£¬Ïë°ÑÀïÃæµÄº¯ÊýÀûÓÃÆðÀ´£¬Á¬½Ó·¢ÏÖ³öÏÖÁËÕÒ²»µ½¾ßÌ庯ÊýµÄ´íÎó£º
ÒÔÏÂÊǼÙÉè¾ÉµÄC³ÌÐò¿â
CµÄÍ·Îļþ
/*-----------c.h--------------*/
#ifndef _C_H_
#define _C_H_
extern int add(int x, int y);
#endifCµÄÔ´Îļþ
/*-----------c.c--------------*/
int add(int x, int y){
 return x+y;
}
C++µÄµ÷ÓÃ
/*-----------cpp.cpp--------------*/
#include "c.h"
void main()
{
 add(1, 0);
}
ÕâÑù±àÒë»á²úÉú´íÎócpp.obj : error LNK2001: unresolved external symbol "int __cdecl add(int,int)" (?add@@YAHHH@Z)£¬Ô­ÒòÊÇÕÒ²»µ½addµÄÄ¿±êÄ£¿é
Õâ²ÅÁîÎÒÏëÆðC++ÖØÔØµÄº¯ÊýÃüÃû·½Ê½ºÍCº¯ÊýµÄÃüÃû·½Ê½£¬ÈÃÎÒÃǻعËһϣºCÖк¯Êý±àÒëºóÃüÃû»áÔÚº¯ÊýÃûǰ¼ÓÒÔ"_",±ÈÈçaddº¯Êý±àÒë³ÉobjÎļþʱµÄʵ¼ÊÃüÃûΪ_add£¬¶øc++ÃüÃûÔò²»Í¬£¬ÎªÁËʵÏÖº¯ÊýÖØÔØÍ¬ÑùµÄº¯ÊýÃûaddÒò²ÎÊýµÄ²»Í¬»á±»±àÒë³É²»Í¬µÄÃû×Ö
ÀýÈç
int add(int , int)==>add@@YAHHH@Z,
float add(float , float )==>add@@YAMMM@Z,
ÒÔÉÏÊÇVC6µÄÃüÃû·½Ê½£¬²»Í¬µÄ±àÒëÆ÷»á²»Í¬£¬×ÜÖ®²»Í¬µÄ²ÎÊýͬÑùµÄº¯ÊýÃû½«±àÒë³É²»Í¬Ä¿±êÃû£¬ÒÔ±ãÓÚº¯ÊýÖØÔØÊǵ÷ÓþßÌåµÄº¯Êý¡£
±àÒëcpp.cppÖбàÒëÆ÷ÔÚcppÎļþÖз¢ÏÖadd(1, 0);µÄµ÷Óöøº¯ÊýÉùÃ÷Ϊextern int add(int x, int y);±àÒëÆ÷¾Í¾ö¶¨È¥ÕÒadd@@YAHHH@Z£¬¿ÉϧËûÕÒ²»µ½£¬ÒòΪCµÄÔ´Îļþ°Ñextern int add(int x, int y);±àÒë³É_addÁË£»
ΪÁ˽â¾öÕâ¸öÎÊÌâC++²ÉÓÃÁËextern "C",Õâ¾ÍÊÇÎÒÃǵÄÖ÷Ì⣬ÏëÒªÀûÓÃÒÔǰµÄC³ÌÐò¿â£¬ÄÇôÄã¾ÍҪѧ»áËü£¬ÎÒÃÇ¿ÉÒÔ¿´ÒÔϱê׼ͷÎļþÄã»á·¢ÏÖ£¬ºÜ¶àÍ·Îļþ¶¼ÓÐÒÔϵĽṹ
#ifndef __H
#define __H
#ifdef __cplusplus
extern "C" {
#endif
extern int f1(int, int);
extern int f2(int, int);
extern int f3(int, int);
 
#ifdef __cplusplus
}
#endif
#endif /*__H*/
Èç¹ûÎÒÃÇ·ÂÖÆ¸ÃÍ·Îļþ¿ÉÒԵõ½
#ifndef _C_H_
#define _C_H_
#ifdef __cplusplus
extern "C" {
#endif
extern int add(int, int);
#ifdef __cplusplus
}
#endif
#endif /* _C_H_ */
ÕâÑù±àÒë
/*-----------c.c--------------*/
int add(int x, int y){
return x+y;
}
ÕâʱԴÎļþΪ*.c£¬__cplusplusûÓб»¶¨Ò壬extern "C" {}ÕâʱûÓÐÉúЧ¶ÔÓÚCËû¿´µ½Ö»ÊÇextern int add(int, int);
addº¯Êý±àÒë³É_add(int, int);
¶ø±àÒëc++Ô´Îļþ
/*-----------cp


Ïà¹ØÎĵµ£º

GNU C __attribute__ »úÖÆ¼ò½é

GNU C __attribute__ »úÖÆ¼ò½é
2006-06-17 13:54:00
¡¡±êÇ©£º¡¡¡¡¡¡[ÍÆË͵½¼¼ÊõȦ]
ͻ񻣼
ÔÚѧϰlinuxÄں˴úÂ뼰һЩ¿ªÔ´Èí¼þµÄÔ´Â루È磺DirectFB£©£¬¾­³£¿ÉÒÔ¿´µ½ÓйØ__attribute__µÄÏà¹ØÊ¹Óᣱ¾ÎĽáºÏ×Ô¼ºµÄѧϰ¾­Àú£¬½ÏΪÏêϸµÄ½éÉÜÁË__attribute__Ïà¹ØÓï·¨¼°ÆäʹÓá£
-------------------------------------- ......

C#ÖÐC/C++³ÌÐòÔ±×¢ÒâÎÊÌâ

1¡¢C/C++³ÌÐòÔ±Çë×¢Ò⣬²»ÄÜÔÚcaseÓï¾ä²»Îª¿Õʱ“ÏòÏÂÖ´ÐД¡£
2¡¢ÖµÀàÐͺÍÒýÓÃÀàÐÍÖ®¼äµÄÇø±ð£ºC#µÄ»ù±¾ÀàÐÍ£¨int£¬charµÈ£©¶¼ÊÇÖµÀàÐÍ£¬ÊÇÔÚÕ»Öд´½¨µÄ¡£¶ø¶ÔÏóÊÇÒýÓÃÀàÐÍ£¬´´½¨ÓÚ¶ÑÖУ¬ÐèҪʹÓùؼü×Önew¡£
3¡¢ÔÚC#ÖÐͨ¹ýʵÀý·ÃÎʾ²Ì¬·½·¨»ò³ÉÔ±±äÁ¿ÊDz»ºÏ·¨µÄ£¬»áÉú³É±àÒëÆ÷´íÎó¡£µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ýÉùÃ÷ËûÃÇ ......

C/C++ÓïÑÔ±à³ÌÐÞÑø£¨×ª£©

ÕâÆªÎÄÕºܳ¤£¬×ªÔØÏÂÀ´¹©×Ô¼ºÂýÂýѧϰ¡£

±à³ÌÐÞÑø £¨×÷Õߣº³Â𩣩
————

ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡ ......

C/C++ÖÐÔ¤±àÒë#,##,#error£¬#pragma×÷ÓÃ


#
ÊÇÉú³É×Ö·û´®£º
          #define a(x) #x
          a(bc
) => "bc"
##
ÊÇÁ¬½Ó£º
          #define a(x) abc##x
     &n ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ