#ifdef __cplusplus extern "C"
ÃæÊÔʱ±»Îʵ½¹ý£¬²»ÉõÃ÷ÁË£¬ÍøÉÏ°Ù¶Èһϣ¬ÕûºÏÁËÁ½¸öÈÊÐÖµÄÎÄÕ£¬ÈçÏ¡£:-)
ʱ³£ÔÚcppµÄ´úÂëÖ®Öп´µ½ÕâÑùµÄ´úÂë:
#ifdef __cplusplus //c++±àÒë»·¾³ÖвŻᶨÒå__cplusplus (plus¾ÍÊÇ"+"µÄÒâ˼)
extern "C" { //¸æËß±àÒëÆ÷ÏÂÃæµÄº¯ÊýÊÇcÓïÑÔº¯Êý£¨ÒòΪc++ºÍcÓïÑÔ¶Ôº¯ÊýµÄ±àÒëת»»²»Ò»Ñù£¬Ö÷ÒªÊÇ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_fun()
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
.---------------
Ïà¹ØÎĵµ£º
½ñÌ죬ÔÚUbuntuÉÏ°²×°PythonÓöµ½ÁËÎÊÌ⣺ C compiler cannot create executables¡£ÕâÓ¦¸ÃÊDZàÒë»·¾³³öÏÖÁËÎÊÌâ¡£ÔÚÍøÉÏËÑË÷ÁËһϣ¬½â¾ö·½·¨ÈçÏ£º
sudo apt-get install build-essential¼´¿É¡£
......
const£¬c\c++Öзdz£³£ÓõĹؼü×Ö¡£
Ê×ÏÈÎÒÃÇ¿´¿´constÓÐÄÇЩÐÞÊη½·¨¡£
×îÇ°ÃæÎÒÃÇÀ´¿´Ò»¸öÎÊÌâ¡£
char *p = "123";
¿ÉÄÜÓеÄÈ˲»ÖªµÀ£¬ÕâÀïµÄÕâ¸ö"123"ÊÇ´æ´¢ÔÚ³£Á¿ÇøµÄ£¬²»ÈÝÐíÐ޸ĵġ£
Ò²¾ÍÊÇ˵ËüÊǸöconstÀàÐ͵ġ£
±ê×¼µÄд·¨Ó¦¸ÃÊÇ
char const *p = "123";
ÖÁÓÚΪʲô±àÒëÆ÷ÈÝÐíÉÏÃæµÄÄǸö²»±ê×¼µÄд·¨£¬¿ÉÄ ......
×î½üÒ»¶Îʱ¼äÔÚÑо¿ Pro*C Óöµ½Á˺ܶà³õ¼¶ÎÊÌâ¡£ÔÚ Pro*C ÖÐÁ¬½ÓÊý¾Ý¿âʱ£¬ÎÒÃÇÒ»°ãÊÇʹÓÃÔÚ“tnsnames.ora”ÖÐÅäÖúÃÁ¬½Ó£¬Ð´ÆðÀ´ºÜ¼òµ¥£¬Óï·¨ÈçÏ£º
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbname;
/* ÕâÀïµÄ dbname ¾ÍÊÇÔÚ ......
Ôø¾Åöµ½¹ýÈÃÄãÃԻ󲻽⡢ÀàËÆÓÚint * (* (*fp1) (int) ) [10];ÕâÑùµÄ±äÁ¿ÉùÃ÷Âð£¿
±¾ÎĽ«ÓÉÒ×µ½ÄÑ£¬Ò»²½Ò»²½½Ì»áÄãÈçºÎÀí½âÕâÖÖ¸´ÔÓµÄC/C++ÉùÃ÷¡£
ÎÒÃǽ«´ÓÿÌ춼ÄÜÅöµ½µÄ½Ï¼òµ¥µÄÉùÃ÷ÈëÊÖ£¬È»ºóÖð²½¼ÓÈëconstÐÞÊηûºÍtypedef£¬»¹Óк¯ÊýÖ¸Õ룬×îºó½éÉÜÒ»¸öÄܹ»ÈÃÄã׼ȷµØÀí½âÈκÎC/C++ÉùÃ÷µÄ“ÓÒ×ó·¨Ôò&rdquo ......