Structs
Struct Declaration
A struct declaration groups related fields under one type name.
struct type
`struct Point` describes a record with named fields.
fields
Each field stores one part of the grouped value.
Struct Declaration
struct_declaration.c
Replay: real traced execution (multi-file project)
#include <stdio.h>
struct Point {
int x;
int y;
};
int main(void) {
int x = 2;
struct Point point = {x, 3};
int sum = point.x + point.y;
printf("sum=%d\n", sum);
return 0;
}
#include <stdio.h>
struct Point {
int x;
int y;
};
int main(void) {
int x = 5;
struct Point point = {x, 3};
int sum = point.x + point.y;
printf("sum=%d\n", sum);
return 0;
}
#include <stdio.h>
struct Point {
int x;
int y;
};
int main(void) {
int x = 8;
struct Point point = {x, 3};
int sum = point.x + point.y;
printf("sum=%d\n", sum);
return 0;
}
x ← 2, point ← (empty), sum ← 5
8int main(void) {9 int x→ 2 = 2; //@x=5, 810 struct Point point→ (empty) = {x2, 3};11 int sum→ 5 = point.x2 + point.y3;1213 printf("sum=%d\n", sum5);14 return 0;15}outputsum=5
x ← 5, point ← (empty), sum ← 8
8int main(void) {9 int x→ 5 = 5;10 struct Point point→ (empty) = {x5, 3};11 int sum→ 8 = point.x5 + point.y3;1213 printf("sum=%d\n", sum8);14 return 0;15}outputsum=8
x ← 8, point ← (empty), sum ← 11
8int main(void) {9 int x→ 8 = 8;10 struct Point point→ (empty) = {x8, 3};11 int sum→ 11 = point.x8 + point.y3;1213 printf("sum=%d\n", sum11);14 return 0;15}outputsum=11