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

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
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(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>
            亚洲免费成人| 亚洲中无吗在线| 日韩午夜激情| 欧美一区二区精品久久911| 国产精品久久久久久久久久久久久| 一区二区三区免费观看| 香蕉视频成人在线观看| 伊伊综合在线| 国产日韩精品在线播放| 美女脱光内衣内裤视频久久网站| 亚洲二区在线视频| 欧美一区二区三区在线免费观看| 在线观看亚洲精品| 国产日韩欧美在线播放不卡| 鲁大师成人一区二区三区| 西西人体一区二区| 亚洲一区成人| 一区二区三区国产在线观看| 欧美凹凸一区二区三区视频| 亚洲亚洲精品三区日韩精品在线视频| 国产专区精品视频| 国产一二三精品| 国产精品视频大全| 国产精品免费视频xxxx| 欧美日韩亚洲一区二区| 欧美三级精品| 欧美日韩一区二区三区在线视频| 久久久久久久性| 蜜臀久久99精品久久久久久9 | 国产精品久久久久久久7电影| 最新高清无码专区| 久久伊伊香蕉| 欧美激情乱人伦| 亚洲麻豆av| 欧美一区=区| 久久另类ts人妖一区二区| 久久躁日日躁aaaaxxxx| 欧美成va人片在线观看| 欧美午夜美女看片| 国产综合色一区二区三区| 亚洲国产91色在线| 亚洲五月六月| 一本久久精品一区二区| 午夜精品福利在线| 欧美激情视频网站| 国产午夜精品一区二区三区视频| 影音先锋久久资源网| 亚洲精品一区二区三区99| 亚洲免费视频网站| 欧美成人精品h版在线观看| 亚洲国产91色在线| 久久精品欧美日韩| 欧美日韩国产首页| 一区二区成人精品| 亚洲欧洲一区二区在线播放| 久久久久在线观看| 国产一区二区日韩精品欧美精品| 亚洲乱码国产乱码精品精98午夜| 欧美一区二区三区日韩| 亚洲欧美在线免费| 欧美激情影音先锋| 在线观看日韩| 美女图片一区二区| 久久激情久久| 久久免费视频在线观看| 欧美日韩一区自拍| 亚洲综合久久久久| 亚洲图片激情小说| 国产精品久久久久久一区二区三区| 亚洲人成网站999久久久综合| 毛片一区二区三区| 美女精品网站| 国产精品99久久久久久有的能看| 日韩午夜电影av| 国产精品一二三视频| 久久se精品一区精品二区| 久久婷婷国产综合精品青草| 国产精品有限公司| 久久综合色88| 欧美女同在线视频| 欧美专区中文字幕| 久久中文欧美| 午夜精品久久久久| 女人色偷偷aa久久天堂| 欧美亚洲综合网| 欧美乱人伦中文字幕在线| 亚洲欧美视频在线| 美日韩精品视频免费看| 午夜一区二区三区不卡视频| 久久午夜av| 欧美在线一二三| 国产精品劲爆视频| 亚洲另类视频| 亚洲精品国产精品乱码不99| 欧美影院成年免费版| 中文亚洲视频在线| 欧美jizzhd精品欧美喷水| 美女黄色成人网| 一区二区三区在线高清| 亚洲欧美日韩精品一区二区| 欧美激情视频网站| 欧美国产视频在线| 亚洲精品乱码久久久久久日本蜜臀| 久久爱www| 欧美电影免费观看高清| 国内精品久久久| 久久久久99精品国产片| 欧美寡妇偷汉性猛交| 亚洲福利小视频| 麻豆精品视频在线| 亚洲精品女av网站| 亚洲美女一区| 国产精品伦子伦免费视频| 久久久国际精品| 亚洲国产精品久久久久秋霞蜜臀| 在线成人av| 国产精品人人做人人爽人人添| 亚洲一区二区视频| 美女日韩欧美| 一区二区三区黄色| 亚洲第一精品影视| 欧美精品久久久久久久久老牛影院| 一区二区三区 在线观看视频| 久久久久成人精品免费播放动漫| 精久久久久久| 国产一区二区高清| 国产精品成人aaaaa网站| 久久久综合免费视频| 午夜国产欧美理论在线播放| 亚洲黄色大片| 久久综合久色欧美综合狠狠| 在线观看日韩av| 国产亚洲成精品久久| 国内精品久久久久伊人av| 欧美噜噜久久久xxx| 免费看亚洲片| 欧美不卡在线视频| 久久综合色播五月| 老司机久久99久久精品播放免费| 午夜精品视频在线观看| 亚洲免费高清| 99热在线精品观看| 99国产精品99久久久久久粉嫩| 狠狠色狠狠色综合人人| 国内精品久久久久国产盗摄免费观看完整版| 欧美四级剧情无删版影片| 欧美韩国一区| 欧美精品一区二区久久婷婷| 欧美精品一区二区三区在线播放| 欧美粗暴jizz性欧美20| 欧美高清视频免费观看| 欧美日韩日日夜夜| 国产精品视频yy9099| 伊人色综合久久天天五月婷| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲欧洲日韩女同| 99re热精品| 亚洲欧美www| 麻豆精品精华液| 一区二区久久久久| 先锋影音久久| 欧美午夜免费| 亚洲欧洲三级| 久久野战av| 亚洲一区二区三区国产| 久久亚洲国产精品一区二区| 欧美区视频在线观看| 伊甸园精品99久久久久久| 日韩写真在线| 亚洲国产女人aaa毛片在线| 欧美一区二区成人6969| 国产精品普通话对白| 亚洲欧美综合国产精品一区| 亚洲激情专区| 欧美精品一区二区三区在线播放| 国产欧美日韩在线观看| 性欧美长视频| 亚洲一区日韩在线| 欧美特黄a级高清免费大片a级| 亚洲精品一区二区三区樱花| 亚洲国产精品第一区二区| 久久一二三国产| 亚洲免费婷婷| 国产精品欧美一区喷水| 亚洲午夜精品一区二区三区他趣| 亚洲经典在线| 欧美日韩国产系列| 午夜精品电影| 久久精品一区二区三区不卡牛牛 | 国产日韩一区欧美| 另类成人小视频在线| 欧美顶级艳妇交换群宴| 亚洲一区二区免费视频| 亚洲欧美激情精品一区二区| 国产欧美精品在线播放| 欧美gay视频激情| 欧美日韩直播| 久久精品国产亚洲一区二区| 久久青青草原一区二区| 一本色道久久综合狠狠躁篇的优点 |