1

AIX で XL C を使用してヘッダー ファイルをコンパイルすると、定義されている列挙型の列挙値ごとに (1506-045 (S)) "宣言されていない識別子" エラーが発生します。私の人生では、ファイルに構文エラーや論理エラーを見つけることができず、他のファイルにも同様の列挙型が正常にコンパイルされています。このファイルで見つけた唯一の違いは、列挙が具体的に数値として定義されていることです。次のコードは、コンパイラがエラーとしてフラグを立てているものです。

typedef enum
{
    ENUM_VAL_0 = 0,
    ENUM_VAL_1 = 1,
    ....
    ENUM_VAL_10 = 10
} MY_BAD_ENUM_TYPE;

エラーなしでコンパイルされる他の列挙型で暗黙的に定義された値とは対照的です。

typedef enum
{
    ENUM_VAL_0,
    ENUM_VAL_1,
    ...
    ENUM_VAL_10
} MY_GOOD_ENUM_TYPE;

列挙値を明示的に定義する際に XL C に問題があるかどうかは誰にもわかりませんか? これに影響を与えるコンパイラのフラグまたはオプションはありますか? 列挙値を明示的に定義することは、ほとんど意味がありませんが、C では問題ではないという印象を受けました。間違った仮定ですか?

誰もこのようなことを経験したことがありますか?

アップデート

@kaylum のリクエストに応じて、ここに完全なソース コードを示します。問題の前にある行は次のとおりです。

typedef FLOAT_32    WAAS_FAST_CORRECTION_TYPE;

/******************************************************************************/
/*  Enumerated type of all possible types of WAAS GEO messages                    */
/*      Data Element: Derived_Msg_Type                                        */
/******************************************************************************/

typedef enum
{
    WAAS_GEO_MSG0_TYPE = 0,
    WAAS_GEO_MSG1_TYPE = 1,
    WAAS_GEO_MSG2_TYPE = 2,
    WAAS_GEO_MSG3_TYPE = 3,
    WAAS_GEO_MSG4_TYPE = 4,
    WAAS_GEO_MSG5_TYPE = 5,
    WAAS_GEO_MSG6_TYPE = 6,
    WAAS_GEO_MSG7_TYPE = 7,
    WAAS_GEO_MSG8_TYPE = 8, 
    WAAS_GEO_MSG9_TYPE = 9,
    WAAS_GEO_MSG10_TYPE = 10,
    WAAS_GEO_MSG12_TYPE = 12,
    WAAS_GEO_MSG17_TYPE = 17,
    WAAS_GEO_MSG18_TYPE = 18, 
    WAAS_GEO_MSG24_TYPE = 24,
    WAAS_GEO_MSG25_TYPE = 25,
    WAAS_GEO_MSG26_TYPE = 26,
    WAAS_GEO_MSG28_TYPE = 28,

    WAAS_GEO_MSG0_ZERO_FILL = 61,
    WAAS_GEO_MSG62_TYPE = 62,
    WAAS_GEO_MSG63_TYPE = 63,
    WAAS_GEO_LAST_MSG = 64,
    WAAS_GEO_INVALID_TYPE = 99

} WAAS_GEO_ENUM_MSG_TYPE;

対応するコンパイラ エラーは次のとおりです。

"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line    237.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG0_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 238.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG1_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line  239.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG2_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 240.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG3_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 241.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG4_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 242.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG5_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 243.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG6_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 244.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG7_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 250.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG8_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 252.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG9_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 253.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG10_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 254.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG12_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 255.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG17_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 256.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG18_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 257.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG24_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 258.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG25_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 259.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG26_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 260.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG28_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 264.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG0_ZERO_FILL.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 265.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG62_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 266.5: 1506-045 (S) Undeclared identifier WAAS_GEO_MSG63_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 267.5: 1506-045 (S) Undeclared identifier WAAS_GEO_LAST_MSG.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 268.5: 1506-045 (S) Undeclared identifier WAAS_GEO_INVALID_TYPE.
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 270.1: 1506-277 (S) Syntax error: possible missing ';' or ','?
"/build/WLNAV/builds/W7.134C/lib_source/WAAS_GEO_message_types.h", line 270.3: 1506-273 (E) Missing type in declaration of WAAS_GEO_ENUM_MSG_TYPE.

これが実際に役立つかどうか教えてください。

4

0 に答える 0