-2

Visual Studio エディション 8 を使用して openMP を学習しようとしていますが、単純なプログラムをコンパイルしようとすると、多くの構文エラーが発生します。ここで何がうまくいかなかったのですか?

ここにファイルがあります: mp.cpp

#include <omp.h>
#include<stdio.h>
#define CHUNKSIZE 100;
#define N        1000;

int main(){

    int i,chunk;

    float a[N], b[N], c[N];

    printf("a is\n");
    for(i=0;i<N;i++)

        a[i]=b[i]=i*1.0; 

chunk=CHUNKSIZE;
    printf("%d\n",a[i]);

    return 0;
};

ビルド ログのエラー メッセージは次のとおりです。

c:\users\...\visual studio 2008\projects\mp\mp\mp.c(12) : error C2143: syntax error : missing ']' before ';'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(12) : error C2143: syntax error : missing ';' before ']'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(12) : error C2143: syntax error : missing ';' before ']'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(12) : error C2143: syntax error : missing ';' before ']'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(15) : error C2143: syntax error : missing ')' before ';'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(15) : error C2059: syntax error : ')'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(17) : error C2146: syntax error : missing ';' before identifier 'a'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(17) : error C2065: 'b' : undeclared identifier
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(17) : error C2109: subscript requires array or pointer type
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(12) : error C2143: syntax error : missing ']' before ';'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(12) : error C2143: syntax error : missing ';' before ']'
c:\users\...\visual studio 2008\projects\mp\mp\mp.c(12) : error C2143: syntax error : missing ';' before ']'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(12) : error C2143: syntax error : missing ';' before ']'
c:\users....\visual studio 2008\projects\mp\mp\mp.c(15) : error C2143: syntax error : missing ')' before ';'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(15) : error C2059: syntax error : ')'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(17) : error C2146: syntax error : missing ';' before identifier 'a'
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(17) : error C2065: 'b' : undeclared identifier
c:\users\....\visual studio 2008\projects\mp\mp\mp.c(17) : error C2109: subscript requires array or pointer type

誰かが私を解決の方向に向けることができますか?

4

2 に答える 2

2

define はプリプロセッサ命令であり、コード上にあるものに関係なく、その内容によって all define を置き換えます。したがって、セミコロンを置くと、それも置き換えられます。

そして注意してください、単に N と呼ばれる定義は、どこでも N のすべての発生を置き換えます。変数名や関数名でも…

于 2013-07-28T23:04:24.560 に答える
1

マクロには「;」が含まれています それらの最後に挿入しました。したがって、a[N]に展開されa[1000;]ます。これらのセミコロンを削除するだけです。

于 2013-07-28T23:02:06.397 に答える