1. ホーム
  2. c

[解決済み] C言語でSDL_Colorを初期化する方法は?

2022-02-14 12:15:22

質問

C言語でSDLライブラリを使用したグラフィカルクライアントを作成しています。 SDL_Color という型があります。

という変数を宣言しています。

SDL_Color color;
color = {255, 255, 255};
/* rest of code */

というと、gccが教えてくれます。

25:11: error: '{' トークンの前に期待される式 color = {0, 0, 0};

私はいくつかの演算子のオーバーロードでC + +のケースでかなり良い答えを見つけたが、私は本当にCでこれを修正する方法を知らないのが怖いです。

解決方法は?

このように構造体に値を代入することはできません。これは、構造体を初期化するためにのみ行うことができます。

SDL_Color color = {255, 255, 255};

また、指定のイニシャライザーを使用することも可能です。

SDL_Color color = {.r = 255, .g = 255, .b = 255};

をご覧ください。 構造体を初期化する3つの方法 .

構造体の宣言後に値を変更したい場合は、メンバーごとに値を変更する必要があります。

SDL_Color color;
color.r = 255;
color.g = 255;
color.b = 255;