我正在尝试使用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
有人能指出我的解决方案吗?
答案 0 :(得分:2)
define是一个预处理器指令,用它的内容替换all define,无论代码是什么。因此,如果你放一个半冒号,它也会替换它。
请注意,一个名为N的定义将取代所有N的出现。即使在变量或函数名称中......
答案 1 :(得分:1)
您的宏包含&#39 ;;&#39;你插在他们的最后。因此a[N]
扩展为a[1000;]
。只需删除那些分号。