2016-05-25 2 views
-7

私には宿題があります。私は電卓を作ってバックグラウンドミュージックを加えることになっています。私はWindowsでDev-C++とCを使います。 音楽と電卓を使いたいときにスレッドが必要です。私はスレッドのためにprocess.hを使用するつもりです。私は_beginthreadを使ってみましたが、エラーが発生しました。バックグラウンドミュージックのスレッド

#include<stdio.h> 
#include<process.h> 

void asd() 
{ 
    printf("hello"); 
} 

int main() 
{ 
    _beginthread(asd(),333,(void*)NULL); _endthread(); 
} 

とエラー

[invalid use of void expression] 

私はこの割り当てをどのように行うことができますか?

答えて

2

あなたはそのアドレスを渡す代わりにasdに電話しています。関数の戻り値はvoidなので、関数ポインタが期待されるところでは、間違ってvoidを渡しています。かっこを削除します。

int main() 
{ 
    _beginthread(asd, 333, (void*)NULL); 
} 

そして、asdは、無効ポインタパラメータも受け入れる必要があります。

void asd(void*) 
{ 
    printf("hello"); 
} 
+0

@Mrprintf:はい。私の答えの最後の文を読んでください。 –

+0

私はあなたの文を理解することができますが、私は何をすべきですか?あなたはそれを説明できますか?私の英語はあまり良くありませんので、簡単に説明してください。 – Mrprintf

+0

定義した 'asd'関数はパラメータをとりません。スレッドは 'void *'パラメータを受け付ける関数へのポインタを必要としました。だからそれは一致しないし、コンパイラはあなたにそう言っている。私は修正した 'asd'を私の答えに加えました。 –

関連する問題