带有-D标志的C全局变量编译错误:期望标识符或'('

时间:2015-09-13 10:25:46

标签: c gcc compiler-errors global-variables

我有一个基本的C文件。它通过以下提示编译并运行完美:

gcc program.c -D N=100 -O4 -Ofast

但是,当我为第二个变量(z)添加-D标志时:

gcc program.c -D N=100 -D z=2 -O4 -Ofast

我收到以下错误:

program.c:14:5: error: expected identifier or '('
int z = 2;
    ^
<command line>:2:11: note: expanded from here
#define z 2
          ^
1 error generated.

program.c代码如下:

#include "program.h"
#include <stdio.h>

double A[N][N];
double B[N][N];
int z;


int min(int x, int y){
    return (x < y) ? x : y;
}

void standard() {
    int i,j;
    for (i=0; i < N; i++)
        for (j=0; j < N; j++)
            A[i][j] += B[j][i];
}

void tiling() {
    int i,j,x,y;
    for (i=0; i < N; i+=z)
        for (j=0; j < N; j+=z)
            for (x=i; x < min((i + z),N); x++)
                 for (y=j; y < min((j + z),N); y++)
                     A[x][y] += B[y][x];
}

int main(int argc, const char * argv[]) {

    printf("The number is: %d. The next number is: %d", N, z);
    printf("The min is: %d.", min(13,20));
    B[40][50] = 21.0;
    tiling();
    //standard();
    printf("The matrix is: %f.",A[50][40]);
    return 0;
}

自从我用C语言编码以来,已经有一段时间了,所以我生锈了,难倒了。任何帮助将不胜感激!

0 个答案:

没有答案