0
#include "stdio.h"
#include "omp.h"
void main() {
omp_set_num_threads(4);
#pragma omp parallel
{
int numberOfThreads = omp_get_num_threads;
int ID = omp_get_thread_num;
printf("%d %d \n",ID,numberOfThreads);
}
}
答えがある保つ:私はいくつかだけを取得私は、OpenMPでスレッドの間違ったIDと番号を取得して私が手
gcc -O3 -fopenmp -Wall test.c
:
4196016 4196064
4196016 4196064
4196016 4196064
4196016 4196064
私は、次のコマンドを使用してプログラムをコンパイル警告メッセージ:
test.c: In function ‘main’:
test.c:8:24: warning: initialization makes integer from pointer
without a cast [enabled by default]
int numberOfThreads = omp_get_num_threads;
^
test.c:9:11: warning: initialization makes integer from pointer
without a cast [enabled by default]
int ID = omp_get_thread_num;
ありがとう!
た場合でなければなりませんこれらの関数のアドレスを出力したい場合は、関数ポインタと '%p'のprintf指定子を使うべきです。値を必要とするならば、関数を呼び出すべきでしょう: 'omp_get_num_threads()'と 'omp_get_thread_num()' - '()'に注意して関数呼び出しを示してください。 –
応答ありがとう!私は問題を見る-_- 私はJavaでプログラムを作成していましたが、誤って関数や変数を使用するとエラーになります。 –
質問タイトルに「(解決済み)」のような言葉を入れないでください。回答を解決策としてマークしたという事実は、すでに問題が解決されたことを示しています。 –