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

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

C中如何調用C++函數

前陣子被問及一個在C中如何調用C++函數的問題,當時簡單回答是將函數用extern "C"聲明,當被問及如何將類內成員函數聲明時,一時語塞,后來網上查了下,網上有一翻譯C++之父的文章可以作為解答,遂拿來Mark一下。

 

C++ 函數聲明為``extern "C"''(在你的 C++ 代碼里做這個聲明),然后調用它(在你的 C 或者 C++ 代碼里調用)。例如:

// C++ code:

extern "C" void f(int);

void f(int i)

{

     // ...

}

 

然后,你可以這樣使用 f()

/* C code: */

void f(int);

void cc(int i)

{

    f(i);

   /* ... */

    }

 

當然,這招只適用于非成員函數。如果你想要在 C 里調用成員函數(包括虛函數),則需要提供一個簡單的包裝(wrapper)。例如:

// C++ code:

class C

{

   // ...

   virtual double f(int);

};

 

extern "C" double call_C_f(C* p, int i) // wrapper function

{

   return p->f(i);

}

 

然后,你就可以這樣調用 C::f()

/* 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);

   /* ... */

}

 

如果你想在 C 里調用重載函數,則必須提供不同名字的包裝,這樣才能被 C 代碼調用。例如

// 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); }

 

然后,你可以這樣使用每個重載的 f()

/* C code: */

void f_i(int);

void f_d(double);

 

void cccc(int i,double d)

{

   f_i(i);

   f_d(d);

   /* ... */

}

注意,這些技巧也適用于在 C 里調用 C++ 類庫,即使你不能(或者不想)修改 C++ 頭文件。

 

extern "C" 之后,就不能重載函數了,關鍵還是函數名修飾的問題.

posted on 2008-11-26 17:14 肥仔 閱讀(411) 評論(0)  編輯 收藏 引用 所屬分類: C++ 基礎

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99视频一区二区| 欧美激情精品久久久久久久变态| 亚洲精品小视频在线观看| 91久久国产自产拍夜夜嗨| 国产精品女主播一区二区三区| 国产精品啊啊啊| 国内成人精品视频| 91久久精品网| 亚洲毛片在线| 西西人体一区二区| 欧美国产视频一区二区| 国产精品国产馆在线真实露脸| 国内精品写真在线观看| 美女国产一区| 亚洲一卡二卡三卡四卡五卡| 麻豆久久婷婷| 在线亚洲美日韩| 中文亚洲字幕| 久久久人成影片一区二区三区| 欧美α欧美αv大片| 亚洲一区二区三区视频播放| 老牛影视一区二区三区| 国产精品午夜春色av| 亚洲精品系列| 亚洲欧美中日韩| 国产精品成人免费| 久热成人在线视频| 欧美在线综合| 国产精品美女久久福利网站| 麻豆9191精品国产| 欧美日精品一区视频| 亚洲美女在线观看| 欧美国产精品久久| 久久香蕉国产线看观看av| 国产亚洲在线观看| 久久av一区二区三区| 亚洲婷婷综合久久一本伊一区| 激情小说亚洲一区| 久久久久成人精品| 久久国产加勒比精品无码| 国产精品无码专区在线观看| 亚洲承认在线| 亚洲欧美日韩精品综合在线观看| 亚洲丶国产丶欧美一区二区三区| 久久久另类综合| 亚洲国产精品一区二区第一页 | 欧美日韩一区二区三区| 亚洲精品美女久久久久| 久久er99精品| 欧美亚洲视频| 午夜亚洲性色福利视频| 在线综合视频| 亚洲免费视频一区二区| 国内精品福利| 亚洲欧美综合网| 亚洲欧美日韩精品一区二区| 欧美视频一区二区三区| 亚洲精品久久久久| 欧美日韩午夜剧场| 亚洲全部视频| 一本色道久久综合亚洲精品高清 | 亚洲九九精品| 一区二区三区高清视频在线观看| 欧美黄色一区| 91久久精品国产91久久性色| 欧美日韩精品二区| 午夜伦欧美伦电影理论片| 欧美怡红院视频| 久久国产直播| 欧美大片在线影院| 欧美亚洲综合网| 国产精品自拍在线| 欧美**人妖| 亚洲国产欧美一区二区三区久久 | 悠悠资源网久久精品| 亚洲国产专区校园欧美| 欧美午夜精品久久久久久浪潮| 亚洲区一区二区三区| 国产精品99久久不卡二区| 欧美午夜一区二区三区免费大片| 一本久久a久久免费精品不卡| 国产在线观看精品一区二区三区 | 亚洲三级色网| 国产精品99久久久久久久vr| 国产精品福利久久久| 亚洲欧美日韩另类精品一区二区三区| 久久精品国产久精国产一老狼 | 欧美屁股在线| 久久综合五月| 亚洲美女毛片| 国产精品视频xxx| 久久精品30| 亚洲国产裸拍裸体视频在线观看乱了中文| 日韩视频免费在线| 国产精品美女主播在线观看纯欲| 午夜性色一区二区三区免费视频 | 亚洲一区美女视频在线观看免费| 久久中文字幕一区| 日韩午夜在线电影| 亚洲三级国产| 国产精品日本| 免费在线成人| 蜜桃久久av一区| 在线视频精品| 亚洲第一视频| 麻豆九一精品爱看视频在线观看免费| 亚洲美女中文字幕| 久热精品视频在线免费观看| 在线亚洲精品| 在线观看欧美精品| 国产精品三级久久久久久电影| 久久综合999| 亚洲欧美影院| 亚洲精品色婷婷福利天堂| 久久亚洲一区二区三区四区| 国产婷婷色一区二区三区四区| 亚洲先锋成人| 亚洲国产片色| 老色鬼久久亚洲一区二区| 亚洲欧美视频一区| 日韩一级成人av| 欧美日韩中文精品| 免费成人高清视频| 久久精品国产亚洲一区二区| 美女国产精品| 久久精品五月| 欧美一区二区福利在线| 国产亚洲综合精品| 欧美日韩一卡| 欧美福利视频在线观看| 久久爱另类一区二区小说| 亚洲一区二区三区久久 | 欧美一区网站| 中文在线一区| 亚洲精品三级| 亚洲欧洲三级电影| 亚洲激情在线播放| 亚洲国产黄色| 亚洲韩国日本中文字幕| 欧美日韩国产一级片| 亚洲午夜电影在线观看| 欧美日韩亚洲视频一区| 欧美91视频| 欧美二区在线播放| 欧美成人激情视频免费观看| 久久综合亚洲社区| 免费观看在线综合| 欧美aⅴ99久久黑人专区| 欧美va天堂在线| 欧美二区在线| 欧美日韩国产成人高清视频| 欧美日韩国产色视频| 欧美午夜精品久久久久久久| 国产精品你懂的在线欣赏| 国产精品视频1区| 红桃视频欧美| 欧美日韩国产精品自在自线| 欧美日韩日本国产亚洲在线 | 午夜视频在线观看一区二区三区 | 欧美激情中文不卡| 亚洲乱码国产乱码精品精98午夜| 日韩亚洲国产欧美| 亚洲一区二区三区四区五区黄| 午夜激情久久久| 久久亚洲精品伦理| 欧美精品少妇一区二区三区| 欧美一区二区三区男人的天堂| 亚洲人线精品午夜| 亚洲深夜福利视频| 午夜久久tv| 男人插女人欧美| 国产精品捆绑调教| 激情久久一区| 中文网丁香综合网| 久久亚洲综合色一区二区三区| 亚洲国产经典视频| 亚洲一区网站| 欧美aaa级| 国产精品视频一二三| 在线日韩欧美视频| 亚洲综合三区| 欧美韩日一区二区三区| 亚洲视频欧美在线| 巨胸喷奶水www久久久免费动漫| 欧美三区在线视频| 影院欧美亚洲| 午夜精品理论片| 亚洲国产婷婷综合在线精品| 亚洲免费视频一区二区| 欧美黄色网络| 1769国内精品视频在线播放| 亚洲一区二区视频在线观看| 蜜桃精品一区二区三区| 亚洲一区二区三区中文字幕在线| 免费久久精品视频| 狠狠狠色丁香婷婷综合久久五月| 亚洲视频在线观看免费| 欧美大片在线看| 久久精品国产亚洲一区二区三区 | 久久精品一区蜜桃臀影院|