c为openmp编写多个语法错误

时间:2013-07-28 22:57:57

标签: c syntax openmp

我正在尝试使用visual studio edition 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

有人能指出我的解决方案吗?

2 个答案:

答案 0 :(得分:2)

define是一个预处理器指令,用它的内容替换all define,无论代码是什么。因此,如果你放一个半冒号,它也会替换它。

请注意,一个名为N的定义将取代所有N的出现。即使在变量或函数名称中......

答案 1 :(得分:1)

您的宏包含&#39 ;;&#39;你插在他们的最后。因此a[N]扩展为a[1000;]。只需删除那些分号。