1. ホーム

Linux c のコンパイルエラーです。Error:expected identifier before numeric constant

2022-02-21 09:03:08
<パス

  今日、Ubuntu 16.04.1でプログラムをコンパイルしたら、コンパイルエラーが出ました。Error:expected identifier before numeric constant.

#define M_REGISTER 10

enum REGISTER
{
  M_REGISTER=1,
  TR_REGISTER=2
}


  上記マクロは、enum 型 enum REGISTER の enum 要素と同じ識別子を定義しています。
  私のプログラムではこのようなことはなかったのですが、プログラム中の変数の識別子とマクロの識別子が同じであれば、このようなエラーも発生するのではないかと思いつきました。この考えに従ってプログラムコードを変更したところ、上記のコンパイルエラーは発生しなくなりました。以下はその例である。

Example source program.
#include
  The macro definition identifier M_TEST in the above program is the same as the identifier of the array in the structure. The compilation result is shown in Figure 1. The above compilation error can be seen in Figure 1. 

Figure 1. gcc compilation results
  The macro definition identifier M_TEST in the above program is the same as the identifier of the array in the structure. The compilation result is shown in Figure 1. The above compilation error can be seen in Figure 1.