1

我在'testFunction(45,UP)'行看到“字符串常量之前的语法错误”

#define UP   "UP\0"
#define DOWN "DOWN\0"

#define testFunction(intensity, direction) \
    { \
      .force        = intensity, \
      .direction    = direction, \
    }

struct configureObject {
  int   force;
  char direction[7];

};

static const struct configureObject configureFiles[] =
{
  testFunction(45, UP),
  testFunction(46, DOWN),
};

在主()

    printf("force: %d\n", configureFiles[0].force);
    printf("direction: %s\n", configureFiles[0].direction);        

    printf("force: %d\n", configureFiles[1].force);
    printf("direction: %s\n", configureFiles[1].direction); 

没有其他编译器提示。这个错误的原因可能是什么?谢谢你。

4

1 回答 1

2

问题是您在以下方面使用direction了两种不同的东西:

.direction    = direction,

两人都被换下。

尝试:

#define testFunction(intensity, dir) \
    { \
      .force        = intensity, \
      .direction    = dir, \
    }

(这只是一个插图,可能有比 更好的名字dir。)

于 2013-11-01T21:57:28.607 回答