この小さなコードを試して、IFステートメントで複合リテラルを使用しました。
#include<stdio.h>
struct time
{
int hour;
int minutes;
int seconds;
};
int main(void)
{
struct time testTimes;
testTimes = (struct time){12,23,34};
if (testTimes == (struct time){12,23,34})
printf("%.2i:%.2i:%.2i\n", testTimes.hour, testTimes.minutes, testTimes.seconds);
else
printf("try again !\n");
return 0;
}
うまくいきませんでした。コンパイル時に次のメッセージが表示されました。
prac.c:15:16:エラー:バイナリへのオペランドが無効です==(「構造体時間」と「構造体時間」があります)
IFステートメントで複合リテラルを使用することは許可されていませんか、または構文が正しくありませんか?