2017-03-03 17 views
-3

C++プロジェクトでsdkを使いたいです。しかし、私は問題にあります、問題は主にこのようなものです。私は、cの関数を使用して行くプログラムを実行している、コードは以下に簡略化することができます。golangは内側の文字列を印刷できません

// #include <stdio.h>                                   
// #include <stdlib.h>                                  
/*                                       
void print() {                                    
    printf("just for test");                                  
}                                        
*/                                       
import "C"                                     

func main() {                                     
    C.print()                                     
} 

しかし、結果がnoneのメインパッケージには、出力はありません。誰が何が問題なのかを知ることができますか?どうもありがとう!

+0

迷惑メールにしないでください。 Cは完全に無関係の言語です。 – Olaf

+0

私はそれを得る-_-、 –

答えて

0

C stdioはバッファされているため、すぐに出力が生成されません。 Cプログラムでは、mainを終了するかexit()を実行するとatexitハンドラが実行され、そのうちの1つはランタイムによってインストールされ、stdoutバッファをフラッシュします。あなたはおそらく、行う必要があります:

void print() { 
    printf("just for test"); 
    fflush(stdout); 
} 

スピードの理由で毎回それをやりたくない場合は、他の場所をフラッシュしてください。

+0

golangの出口はstdioバッファをフラッシュしないでしょうか? –

+0

それは本当に確かです。 –

関連する問題