mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-27 14:54:05 -06:00
1.0 KiB
1.0 KiB
| title | aliases | tags | |
|---|---|---|---|
| 11-struct-and-union |
|
Struct
not a calss
- class like composite data type called struct
- POD plain old data
declare
struct <name>{
<type><name>;
<type><name>;
} <variable>;
struct point_2d {
double x;
double y;
} point;
typically an anonymous struct is declared and then given a name with typedef
typedef struct {
double x;
double y;
} point_2d;
This is the common convention now.
initalize
point_2d location = {0.0, 1.0}; //initalizers
point_2d location = {.y = 1.0, .x = 0.0}; //designated initalizers
accessing
use the .
point_2d location;
location.x = 0;
location.y = 1;
shallow copy
copy the members including pointers
- but not the things the pointers point to
both point to the same memory location. when you change one - they both change.
passing to routines
passed by value
void print(thing object)

