1

LinuxからWindows8にいくつかの(動作する)コードを移植しています。DDKを使用しています。

typedef struct {
    unsigned int test1;
    unsigned int test2;
} settings;

const settings vp_settings = {
    .test1 = 1,
    .test2 = 1
};

これを無効にするWindowsDDKコンパイラとGCCの違いは何ですか?私が得ているエラーは、typedef struct {1行目であり、番号付けが正常に継続していると仮定しています。

(7):エラー:C2059:構文エラー:'。'

構文エラーが発生しないようにこれを作成するにはどうすればよいですか?同じメンバー名を維持したいので、残りのコードベースを変更する必要はありません。期間は不要であり、削除できますか?

4

2 に答える 2

2

Q :(バニラ)の何が問題になっていますか:

const settings vp_settings = {
    1, /* test1 */
    1  /* test2 */
};

PS:

C-struct指定の初期化子をC89(resp MSVC Cコンパイラ)に書き換える方法

これはC99のもののように見えます...そしてAFAIKMSVSはC99を完全にはサポートしていません...

于 2012-06-28T22:54:33.043 に答える
1

お使いのコンパイラはC99指定の初期化子をサポートしていないようです。

おそらくあなたのコンパイラはC99機能を有効にするためにコマンドラインスイッチを必要としますか?

于 2012-06-28T22:54:46.863 に答える