【问题标题】:c program multiple sytax errors for openmp [closed]c程序为openmp编写多个语法错误[关闭]
【发布时间】:2013-07-28 22:57:56
【问题描述】:

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

谁能指出解决方案的方向?

【问题讨论】:

  • 您是否在项目设置中包含了omp.h 的位置?
  • 错字:你的#defines中有分号。

标签: c syntax openmp


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您的宏包含“;”你在它们的末尾插入。所以a[N] 扩展为a[1000;]。只需删除那些分号。

    【讨论】:

      猜你喜欢
      • 2018-10-18
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多