мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| c:c_ultimate_guide:structs [2025/10/25 14:31] – radi0dev | c:c_ultimate_guide:structs [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in | ||
|---|---|---|---|
| Строка 32: | Строка 32: | ||
| при таком обявлении переменной __можно не указывать имя__ структуры. | при таком обявлении переменной __можно не указывать имя__ структуры. | ||
| - | определение структуры через typedef: | + | определение структуры через typedef |
| <code c> | <code c> | ||
| #include < | #include < | ||
| Строка 85: | Строка 85: | ||
| struct person tom = {23, " | struct person tom = {23, " | ||
| printf(" | printf(" | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Составные литералы ===== | ||
| + | |||
| + | Составные литералы (compound literals) позволяют сократить код и использовать литералы, | ||
| + | |||
| + | <code c> | ||
| + | #include < | ||
| + | |||
| + | typedef struct { | ||
| + | int x; | ||
| + | int y; | ||
| + | } Point; | ||
| + | |||
| + | void print_point(Point p) { | ||
| + | printf(" | ||
| + | } | ||
| + | |||
| + | Point create_point(int x, int y) { | ||
| + | return (Point) {x, y}; // возвращаем строковой литерал | ||
| + | } | ||
| + | int main() { | ||
| + | Point p = create_point(170, | ||
| + | print_point(p); | ||
| return 0; | return 0; | ||
| } | } | ||
| </ | </ | ||