Как вернуть составную литеральную структуру
У меня есть функция, которая всегда возвращает структуру с известными значениями. Что такое синтаксис?
struct MyStruct Function(void)
{
return (struct MyStruct){1,2,3};
}
Я получаю ошибку компилятора на обратной линии:
Ошибка: ошибка синтаксиса
Любые идеи? Я использую кросс-компилятор для встроенной цели, поэтому он может быть моим компилятором.
Изменить
Это мой компилятор. Как комментировал cnicutar, это действительно код C99.
Некоторые люди указали, что я могу создать переменную. Моя цель состояла в том, чтобы избежать создания переменной, чтобы вернуть ее.
Ответы
Ответ 1
Похоже, вы пытаетесь использовать инициализатор как структуру: -)
Это недопустимый синтаксис. Попробуйте что-то вроде:
struct MyStruct Function(void)
{
struct MyStruct s = {1,2,3};
return s;
}
Но было бы лучше показать, как именно MyStruct
объявляется на всякий случай.
Ответ 2
Очевидным способом было бы создать переменную соответствующего типа:
struct MyStruct Function(void) {
struct MyStruct ret = {1,2,3};
return ret;
}