青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

How do I call a C function from C++?

Just declare the C function ``extern "C"'' (in your C++ code) and call it
(from your C or C++ code). For example:
	// C++ code

extern "C" void f(int); // one way

extern "C" { // another way
int g(double);
double h();
};

void code(int i, double d)
{
f(i);
int ii = g(d);
double dd = h();
// ...
}
The definitions of the functions may look like this:
	/* C code: */

void f(int i)
{
/* ... */
}

int g(double d)
{
/* ... */
}

double h()
{
/* ... */
}

Note that C++ type rules, not C rules, are used. So you can't call function declared ``extern "C"''
 with the wrong number of argument. For example:
	// C++ code

void more_code(int i, double d)
{
double dd = h(i,d); // error: unexpected arguments
// ...
}

How do I call a C++ function from C?

Just declare the C++ function ``extern "C"'' (in your C++ code) and
call it (from your C or C++ code). For example:
	// C++ code:

extern "C" void f(int);

void f(int i)
{
// ...
}
Now f() can be used like this:
	/* C code: */

void f(int);

void cc(int i)
{
f(i);
/* ... */
}
Naturally, this works only for non-member functions. If you want to call
 member functions (incl. virtual functions) from C, you need to provide
 a simple wrapper. For example:
	// C++ code:

class C {
// ...
virtual double f(int);
};

extern "C" double call_C_f(C* p, int i) // wrapper function
{
return p->f(i);
}
Now C::f() can be used like this:
	/* C code: */

double call_C_f(struct C* p, int i);

void ccc(struct C* p, int i)
{
double d = call_C_f(p,i);
/* ... */
}
If you want to call overloaded functions from C, you must provide wrappers with distinct names
for the C code to use. For example:
	// C++ code:

void f(int);
void f(double);

extern "C" void f_i(int i) { f(i); }
extern "C" void f_d(double d) { f(d); }
Now the f() functions can be used like this:
	/* C code: */

void f_i(int);
void f_d(double);

void cccc(int i,double d)
{
f_i(i);
f_d(d);
/* ... */
}
Note that these techniques can be used to call a C++ library from C code
even if you cannot (or do not want to) modify the C++ headers.
posted on 2008-07-19 01:39 chatler 閱讀(163) 評論(0)  編輯 收藏 引用 所屬分類: C++_BASIS
<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产日本| 亚洲激情亚洲| 好吊色欧美一区二区三区视频| 欧美电影在线免费观看网站| 午夜日韩在线观看| 女人色偷偷aa久久天堂| 免费成人av| 欧美久久久久中文字幕| 欧美日韩国产综合久久| 欧美网站在线观看| 久久精品一区四区| 99re6热在线精品视频播放速度 | 亚洲欧美激情精品一区二区| 亚洲精品亚洲人成人网| 999在线观看精品免费不卡网站| 久久精品国产2020观看福利| 亚洲韩国日本中文字幕| 欧美性猛交xxxx免费看久久久 | 99在线热播精品免费| 久久久久久久久久久久久久一区| 亚洲丰满少妇videoshd| 亚洲电影第三页| 在线亚洲伦理| 久久在线观看视频| 99精品国产一区二区青青牛奶| 蜜臀av一级做a爰片久久| 午夜在线播放视频欧美| 久久精品日产第一区二区| 亚洲欧美www| 在线亚洲+欧美+日本专区| 欧美一级在线播放| 欧美高清一区二区| 午夜精品999| 欧美日本不卡视频| 激情丁香综合| 亚洲欧美在线一区二区| 亚洲高清免费| 欧美与欧洲交xxxx免费观看| 欧美日韩国产精品一区| 亚洲成色www久久网站| 午夜精品在线观看| 亚洲精品在线二区| 免费不卡在线观看| 曰本成人黄色| 久久久久久久激情视频| 亚洲影院在线| 欧美一区二区在线免费观看| 欧美喷潮久久久xxxxx| 在线观看国产精品淫| 亚洲免费在线看| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲人成在线观看网站高清| 性欧美超级视频| 久久久av网站| 一级成人国产| 欧美日韩三区四区| 日韩一级大片在线| 亚洲黄色片网站| 欧美激情91| 日韩视频中文字幕| 亚洲国产精品成人va在线观看| 亚洲第一精品电影| 久久午夜羞羞影院免费观看| 国产日韩欧美一区二区三区在线观看| 欧美日韩精品在线| 亚洲美女av在线播放| 亚洲激情视频在线播放| 久久综合九色综合欧美狠狠| 激情文学综合丁香| 亚洲视频精选在线| 亚洲清纯自拍| 国产精品成人一区二区三区吃奶| 国产亚洲免费的视频看| 篠田优中文在线播放第一区| 午夜国产不卡在线观看视频| 欧美bbbxxxxx| 99热免费精品| 99精品99| 国产日产欧产精品推荐色| 久久综合九色综合欧美就去吻 | 亚洲永久精品国产| 国产精品青草综合久久久久99| 激情欧美一区二区| 蜜桃av综合| 欧美精品激情在线| 亚洲一区二区三区精品在线观看 | 欧美一区二区三区喷汁尤物| 亚洲尤物影院| 136国产福利精品导航网址| 亚洲午夜免费福利视频| 一本一本久久a久久精品综合妖精| 久久久久久9| 国产精品久久久久免费a∨| 欧美日本一区| 一区福利视频| 亚洲欧洲一区二区三区在线观看 | 久久久99精品免费观看不卡| 久久综合激情| 亚洲专区一区| 亚洲经典在线看| 国产精品女人毛片| 欧美激情精品久久久六区热门 | 久久青草久久| 99精品国产在热久久下载| 午夜精品久久久久久久久久久久| 欧美日韩国产综合一区二区| 久久精品国产清自在天天线| 亚洲图片欧美日产| 影音先锋亚洲视频| 一区二区不卡在线视频 午夜欧美不卡'| 久久亚洲美女| 亚洲永久精品大片| 猛男gaygay欧美视频| 久久国产主播精品| 欧美特黄a级高清免费大片a级| aa日韩免费精品视频一| 久久精品国产一区二区电影| 欧美α欧美αv大片| 欧美在线日韩精品| 欧美日韩免费观看一区| 在线播放亚洲一区| 一区二区三区成人| 亚洲伦理网站| 欧美/亚洲一区| 久久综合久久美利坚合众国| 国产精品一区二区三区久久| 亚洲欧美综合v| 欧美国产日韩二区| 一区二区黄色| 久色成人在线| 99国产精品99久久久久久| 亚洲欧洲在线看| 尤物在线精品| 久久综合久久综合九色| 亚洲美女视频| 欧美黄色视屏| 亚洲国产视频a| 亚洲美女91| 欧美劲爆第一页| 亚洲国产精品免费| 亚洲品质自拍| 欧美黄色大片网站| 日韩一级片网址| 亚洲欧美www| 国产欧美日韩精品在线| 午夜激情亚洲| 玖玖国产精品视频| 亚洲国产成人精品视频| 久热这里只精品99re8久| 亚洲国产乱码最新视频| 国产精品亚洲综合| 宅男噜噜噜66一区二区66| 国产日韩专区| 欧美一级成年大片在线观看| 亚洲欧洲日本一区二区三区| 蜜桃视频一区| 日韩午夜在线观看视频| 午夜精品一区二区三区电影天堂| 久久久久久一区二区三区| 久久婷婷人人澡人人喊人人爽| 欧美日韩国产在线播放| 亚洲视频网站在线观看| 久久久久久穴| 亚洲精品极品| 欧美亚州一区二区三区 | 国产日韩欧美视频在线| 欧美怡红院视频| 亚洲电影在线播放| 好看不卡的中文字幕| 久色成人在线| 免费日韩视频| 中文欧美字幕免费| 国产综合色在线| 欧美日韩国产综合视频在线观看中文 | 国模吧视频一区| 亚洲黄色成人| 国产亚洲精品资源在线26u| 欧美激情一区三区| 中文国产成人精品久久一| 韩日午夜在线资源一区二区| 欧美乱在线观看| 欧美一区二区视频免费观看 | 欧美福利视频网站| 亚洲欧美国产精品桃花| 91久久综合亚洲鲁鲁五月天| 欧美亚洲一区| 99精品免费视频| 在线观看欧美成人| 国产欧美日韩另类一区| 欧美国产日韩亚洲一区| 久久久久国色av免费看影院| 亚洲一区二区三区四区视频| 性色av一区二区怡红| 亚洲欧洲在线播放| 国产自产v一区二区三区c| 欧美日韩一区二区三区在线视频| 亚洲国产精品一区二区三区| 久久精品国产清高在天天线| 国模吧视频一区| 国产精品美女主播|