簡體   English   中英

在extern中編寫c ++代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM