-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

定义是一条预处理器指令,并用其内容替换所有定义,无论它在代码上是什么。所以如果你放一个分号,它也会替换它。

请注意,仅称为 N 的定义将替换所有出现的 N。即使在变量或函数名称中...

于 2013-07-28T23:04:24.560 回答
1

你的宏包括';' 你在它们的末尾插入。所以a[N]展开为a[1000;]。只需删除那些分号。

于 2013-07-28T23:02:06.397 回答