August 2019
#include <stdio.h>
#include <string.h>
// structures hold data of different types
typedef struct {
char chars[255];
int numbers[10];
double value;
} Element;
// declare function with struct as argument
void function(Element element);
int main() {
// declare struct type
Element element;
strcpy(element.chars, "this is my first element");
element.numbers[0] = 1;
element.numbers[2] = 2;
element.value = 3.14;
printf("%s\n", element.chars);
// this is my first element
printf("%i\n", element.numbers[2]);
// 2
printf("%f\n", element.value);
// 3.140000
// specify number of bits (bit fields)
struct {
unsigned int x;
unsigned int y;
} bigger;
struct {
unsigned int x : 1;
unsigned int y : 1;
} smaller;
printf("%lu\n", sizeof(bigger));
// 8
printf("%lu\n", sizeof(smaller));
// 4
}