1

我必须在 PC 上使用外国 C 代码(最初在嵌入式硬件上运行),我不允许修改。

一个 .h 文件中的一些变量声明如下所示:

extern int variableA;
extern variableB;
extern variableC+0;
  • 变量A的声明很清楚。
  • variableB 的声明通过编译器,类型假定为 int。
  • 变量C 的声明失败。

问题: 变量C的声明使用什么样的语法?如何让编译器接受它(不允许修改代码)?这甚至是有效的 C 语法吗?

项目使用的编译器是VS2008内部编译器。

更新:

我追溯了包含,并且没有#define 更改该语法。仅供参考,该代码来自机载硬件,并且可以正确编译(使用硬件的编译器)。该变量在我可用的代码部分中用作常规变量:

variableC+0 = otherVar;

感谢您的回复,这似乎真的是无效的标准 C 代码,仅适用于该特定编译器。

4

2 回答 2

0

这种语法在 C 标准中没有任何意义。

于 2012-08-13T14:06:16.480 回答
0

根据MSDN ,这不是有效的语法。

 identifier:

    nondigit

    identifier nondigit

    identifier digit

nondigit: one of

    _ a b c d e f g h i j k l m n o p q r s t u v w x y z

    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

digit: one of

    0 1 2 3 4 5 6 7 8 9

一点都不加。我认为,任何类 C 语言的解析器都会将加号解析为求和表达式。

于 2012-08-13T14:52:29.723 回答