1

私は外部の C コード (元々は組み込みハードウェアで実行されていた) を使用して PC で作業する必要があり、これを変更することは許可されていません。

1 つの .h ファイル内の一部の変数宣言は次のようになります。

extern int variableA;
extern variableB;
extern variableC+0;
  • variableA の宣言は明確です。
  • variableB の宣言はコンパイラを通過し、型は int と見なされます。
  • variableC の宣言が失敗します。

質問: variableC の宣言にはどのような構文が使用されますか? コンパイラにそれを受け入れるようにするにはどうすればよいですか (コードの変更は許可されていません)。これは有効な C 構文でもありますか?

プロジェクトに使用されるコンパイラは、VS2008 内部コンパイラです。

アップデート:

インクルードをさかのぼって調べましたが、その構文を変更している #define はありません。参考までに、そのコードは空中 HW からのものであり、正しくコンパイルされます (HW のコンパイラを使用)。変数は、利用可能なコード部分で通常の変数として使用されます。

variableC+0 = otherVar;

返信ありがとうございます。これは実際には無効な標準 C コードのようで、その特定のコンパイラでのみ機能します。

4

2 に答える 2

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 に答える
0

この構文は、C 標準では意味がありません。

于 2012-08-13T14:06:16.480 に答える