[英]writing c++ code in extern c
我正在嘗試實現一個外部c ++頭接口,它將作為共享庫生成。 它們的示例接口具有包含在extern“C”中的c樣式功能,因為它們不希望執行名稱修改。
我當前的實現依賴於qt。 我現在可以將這個qt代碼放在extern“C”中並期望它開箱即用嗎? 如果這有效的原因?
偽代碼://不要指望它可以工作並且可能包含錯誤。
extern "C"{
void doStuff(){
QString filename="Data.txt";
QFile file( filename );
if ( file.open(QIODevice::ReadWrite) )
{
QTextStream stream( &file );
std::stringstream ss;
ss<<"something"<< endl;
}
}
}
謝謝!
extern "C"
不會阻止您在函數內部使用C ++。 它只影響調用函數的方式(包括函數的名稱)。 由於名稱沒有被破壞,並且調用序列可能與標准C ++調用序列不同,因此必須確保該函數在出現的任何C ++轉換單元中聲明為extern "C"
。 此外, "C"
名稱不是命名空間,但您可能知道這一點。
據我所知,Qt沒有做任何事情來使您的代碼或多或少地對C友好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.