CÓëC++Îļþ»¥Ïàµ÷ÓÃ
ʱ³£ÔÚcppµÄ´úÂëÖ®Öп´µ½ÕâÑùµÄ´úÂë:
#ifdef __cplusplus
extern "C" {
#endif
//Ò»¶Î´úÂë
#ifdef __cplusplus
}
#endif
ÕâÑùµÄ´úÂëµ½µ×ÊÇʲôÒâË¼ÄØ£¿Ê×ÏÈ£¬__cplusplusÊÇcppÖеÄ×Ô¶¨Òåºê£¬ÄÇô¶¨ÒåÁËÕâ¸öºêµÄ»°±íʾÕâÊÇÒ»¶ÎcppµÄ´úÂ룬Ҳ¾ÍÊÇ˵£¬ÉÏÃæµÄ´úÂëµÄº¬ÒåÊÇ:Èç¹ûÕâÊÇÒ»¶ÎcppµÄ´úÂ룬ÄÇô¼ÓÈëextern "C"{ºÍ}´¦ÀíÆäÖеĴúÂë¡£
¡¡¡¡ÒªÃ÷°×ΪºÎʹÓÃextern "C"£¬»¹µÃ´ÓcppÖжԺ¯ÊýµÄÖØÔØ´¦Àí¿ªÊ¼ËµÆð¡£ÔÚc++ÖУ¬ÎªÁËÖ§³ÖÖØÔØ»úÖÆ£¬ÔÚ±àÒëÉú³ÉµÄ»ã±àÂëÖУ¬Òª¶Ôº¯ÊýµÄÃû×Ö½øÐÐһЩ´¦Àí£¬¼ÓÈë±ÈÈ纯ÊýµÄ·µ»ØÀàÐ͵ȵÈ.¶øÔÚCÖУ¬Ö»ÊǼòµ¥µÄº¯ÊýÃû×Ö¶øÒÑ£¬²»»á¼ÓÈëÆäËûµÄÐÅÏ¢.Ò²¾ÍÊÇ˵:C++ºÍC¶Ô²úÉúµÄº¯ÊýÃû×ֵĴ¦ÀíÊDz»Ò»ÑùµÄ. Ä¿µÄ¾ÍÊÇÖ÷ҪʵÏÖCÓëC++µÄÏ໥µ÷ÓÃÎÊÌâ¡£
c.hµÄʵÏÖ
#ifndef _c_h_
#define _c_h_
#ifdef __cplusplus
extern "C" {
#endif
void C_fun();
#ifdef __cplusplus
}
#endif
#endif
-----------------------------------
c.cµÄʵÏÖ
££include "c.h"
void C_fun()
{
}
------------------------------------
ÔÚcpp.cppÖе÷ÓÃc.cÖеÄC_test()
cpp.cppµÄʵÏÖ
££include "c.h"
int main()
{
C_fun()
}
ÆäÖÐ__cplusplusÊÇC++±àÒëÆ÷µÄ±£Áôºê¶¨Ò壮¾ÍÊÇ˵C++±àÒëÆ÷ÈÏΪÕâ¸öºêÒѾ¶¨ÒåÁË£®
ËùÒԹؼüÊÇextern "C" {}
extern "C"ÊǸæËߣã«£«±àÒëÆ÷¼þÀ¨ºÅÀïµÄ¶«¶«Êǰ´ÕÕCµÄobjÎļþ¸ñʽ±àÒëµÄ£¬ÒªÁ¬½ÓµÄ»°°´ÕÕCµÄÃüÃû¹æÔòÈ¥ÕÒ£®
£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½
ÄÇôCÖÐÊÇÈçºÎµ÷ÓÃC++Öеĺ¯Êýcpp_fun()ÄØ£¿
ÒòΪÏÈÓÐCºóÓÐC++, ËùÒÔÖ»ÄÜ´ÓC++µÄ´úÂëÖп¼ÂÇÁË£®
¼ÓÈëC++Öеĺ¯Êý»ò±äÁ¿ÓпÉÄܱ»£ÃÖеÄÎļþµôÓã¬ÔòÓ¦¸ÃÕâÑùд£¬Ò²ÊÇÓÃextern "C"{}
²»¹ýÊÇ´úÂëÖÐÒª¼Ó£¬Í·ÎļþÒ²Òª¼Ó£¬ÒòΪ¿ÉÄÜÊÇC++ÖÐÒ²µ÷ÓÃ
--------------------------------------
cpp.hµÄʵÏÖ
#ifndef _c_h_
#define _c_h_
#ifdef __cplusplus
extern "C" {
#endif
void CPP_fun();
#ifdef __cplusplus
}
#endif
#endif
.-------------------------------------------
Cpp.cppµÄʵÏÖ
extern "C" { //¸æËßC+++±àÒëÆ÷,À©ºÅÀï°´ÕÕCµÄÃüÃû¹æÔò±àÒë
void CPP_fun()
{
.....
}
×ܽá
¡¡¡¡CºÍC++¶Ôº¯ÊýµÄ´¦Àí·½Ê½ÊDz»Í¬µÄ.extern "C"ÊÇʹC++Äܹ»µ÷ÓÃCд×÷µÄ¿âÎļþµÄÒ»¸öÊֶΣ¬Èç¹ûÒª¶Ô±
Ïà¹ØÎĵµ£º
ϵͳ½éÉÜ£º
´Ëϵͳ¾ßÓд«Í³ÊÓÆµ»áÒéµÄÒ»Çй¦ÄÜ£¬»ùÓÚä¯ÀÀÆ÷½çÃæ£¬¿ÉÒÔ¿ØÖÆÔ¶³ÌµÇ½£¬²Î»áÕß¿ÉÒÔͬʱ¿´µ½Ñݽ²ÕߺÍÑݽ²ÄÚÈÝ£¬²¢ÇåÎúµÄÌýµ½Ñݽ²ÕßÉùÒô£¬ÒѾÁË»ØÉùºÍÔëÒôµÄ´¦Àí£¬´ËÍ⻹¿ÉÒÔͬÉù´«Ò룬ÒÔÂú×㲻ͬÓïÖֲλáÈ˵ÄÒªÇ󡣲λáÕß»¹ÄÜʵÏÖ¶à»á³¡×ÔÓÉÇл»£¬²¢¿É²¥·ÅPPTµÈ¡£
ÐèÒªµÄÇëÁª ......
pFn¡¡t1(void);
pFn¡¡t2(void);
int main()
{
¡¡¡¡pFn fn = t1 ;
¡¡¡¡while(1){
¡¡¡¡¡¡¡¡fn = fn();¡¡¡¡//Õâ¸ö£¬´ó¼Ò¿´Çå³þÁË
¡¡¡¡}
}
pFn¡¡t1()
{
¡¡¡¡printf("t1\n");
¡¡¡¡return t2 ;
}
pFn¡¡t2()
{
¡¡¡¡printf("t2\n");
¡¡¡¡return t1 ;
}
ÇëÎÊ£¬Ïëͨ¹ý±àÒ룬pFnº¯ÊýÖ¸ÕëÀàÐÍ ......
ÁËCÈ»ºóC++£¬È»ºóMFC/Windows,È»ºóÊÇC#,ÆäÖÐÊý¾ÝÀàÐͺܶ࣬ÓÉ»ù±¾ÀàÐÍÑÜÉúµÄtypedefÀàÐÍÒ²N¶à¡£ÊìÖª»ù±¾Êý¾ÝÀàÐÍÊÇÎÒÃÇÕýÈ·±í´ïʵ¼ÊÎÊÌâÖи÷ÖÖÊý¾ÝµÄǰÌᣬÒò´ËÎÒ·ÖÀà×ܽáÁËÒ»ÏÂC/C++/Windows /C#»ù±¾Êý¾ÝÀàÐÍ£¬ÒÔ±ãÈÕºó²éÔÄ¡£
ANSI C/C++»ù±¾Êý¾ÝÀàÐÍ£º
Type
Size
Ê ......
C/C++ÊÇ×îÖ÷ÒªµÄ±à³ÌÓïÑÔ¡£ÕâÀïÁгöÁË50ÃûÓÅÐãÍøÕ¾ºÍÍøÒ³Çåµ¥£¬ÕâÐ©ÍøÕ¾Ìṩc/c++Ô´´úÂë ¡£Õâ·ÝÇåµ¥ÌṩÁËÔ´´úÂëµÄÁ´½ÓÒÔ¼°ËüÃǵÄС˵Ã÷¡£ÎÒÒѾ¡Á¦°üÀ¨×î¼ÑµÄC/C++Ô´´úÂëµÄÍøÕ¾¡£Õâ²»ÊÇÒ»¸öÍêÕûµÄÇåµ¥£¬ÄúÓн¨Òé¿ÉÒÔÁªÏµÎÒ£¬ÎÒ½«»¶ÓÄúµÄ½¨ Ò飬ÒÔ½øÒ»²½¼ÓÇ¿Õâ·½ÃæµÄÇåµ¥¡£
1¡¢http://snippets.dzone.com/tag/c/&nbs ......
Õâ¸ö·½¿éÓÎÏ·ÊÇÓÃlinuxÖն˵Ĺâ±ê¿ØÖÆ¡¢ÑÕÉ«ÉèÖÃ×öµÄ
(ÌíÁ˸ö¹¦ÄÜ£¬×ÖĸPÔÝÍ£¡¢»Ö¸´ÓÎÏ·)
Óà A S D W ¿ØÖÆÒƶ¯¡¢×ªÏò£¬¿Õ¸ñ¼üÏÂ×¹µ½µ×£»
linuxµÄÒì²½aioº¯Êý½â¾öÁ˺ܶàÂé·³£»
ÓÃÁ˸ö¼òµ¥µÄÄ£°åµ¥Àýģʽ£¬¼Ì³ÐËü¾Í¿ÉÒÔ£»
¶ÔPOSIXÏ̼߳òµ¥·â×°³ÉjavaÏ߳̽ӿڣ»
#include <memory>
#include "Tetris.h"
#include ......