#include<stdio.h>
#include<stdlib.h>
#include<string.h>
enum days {mon, tue, wed, thu, fri, sat, sun};
typedef enum days days_t;
struct personal_info {
char name[32];
int age;
char *addr;
};
// typedef a previously defined struct.
typedef struct personal_info person;
// declare a nameless struct and typedef it right away.
typedef struct {
int x;
int y;
} pair;
// can typedef primitive types too
typedef int my_int;
int main()
{
days_t d; // just a shorter way of declaring "enum days d"
person david; // just a shorter way of declaring "struct personal_info david"
pair p;
my_int x;
d = mon;
david.age = 20;
p.x = 5;
p.y = 7;
x = 42;
printf("Size of 'person' struct is %ld\n", sizeof(person
)); printf("David's name is %s\n", david.
name); printf("The pair 'p' is (%d, %d)\n", p.
x, p.
y);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHN0cmluZy5oPgoKZW51bSBkYXlzIHttb24sIHR1ZSwgd2VkLCB0aHUsIGZyaSwgc2F0LCBzdW59OwoKdHlwZWRlZiBlbnVtIGRheXMgZGF5c190OwoKc3RydWN0IHBlcnNvbmFsX2luZm8gewogICBjaGFyIG5hbWVbMzJdOwogICBpbnQgYWdlOwogICBjaGFyICphZGRyOwp9OwoKLy8gdHlwZWRlZiBhIHByZXZpb3VzbHkgZGVmaW5lZCBzdHJ1Y3QuCnR5cGVkZWYgc3RydWN0IHBlcnNvbmFsX2luZm8gcGVyc29uOwoKLy8gZGVjbGFyZSBhIG5hbWVsZXNzIHN0cnVjdCBhbmQgdHlwZWRlZiBpdCByaWdodCBhd2F5Lgp0eXBlZGVmIHN0cnVjdCB7CiAgIGludCB4OwogICBpbnQgeTsKfSBwYWlyOwoKCi8vIGNhbiB0eXBlZGVmIHByaW1pdGl2ZSB0eXBlcyB0b28KdHlwZWRlZiBpbnQgbXlfaW50OwoKCgppbnQgbWFpbigpCnsKICAgZGF5c190IGQ7ICAgICAgICAgLy8ganVzdCBhIHNob3J0ZXIgd2F5IG9mIGRlY2xhcmluZyAiZW51bSBkYXlzIGQiCiAgIHBlcnNvbiBkYXZpZDsgICAgIC8vIGp1c3QgYSBzaG9ydGVyIHdheSBvZiBkZWNsYXJpbmcgInN0cnVjdCBwZXJzb25hbF9pbmZvIGRhdmlkIgogICBwYWlyIHA7CiAgIG15X2ludCB4OwoKICAgZCA9IG1vbjsKCiAgIHN0cmNweShkYXZpZC5uYW1lLCAiam9obiIpOwogICBkYXZpZC5hZ2UgPSAyMDsKCiAgIHAueCA9IDU7CiAgIHAueSA9IDc7CgogICB4ID0gNDI7CgogICBwcmludGYoIlNpemUgb2YgJ3BlcnNvbicgc3RydWN0IGlzICVsZFxuIiwgc2l6ZW9mKHBlcnNvbikpOwogICBwcmludGYoIkRhdmlkJ3MgbmFtZSBpcyAlc1xuIiwgZGF2aWQubmFtZSk7CiAgIHByaW50ZigiVGhlIHBhaXIgJ3AnIGlzICglZCwgJWQpXG4iLCBwLngsIHAueSk7CiAgIHByaW50ZigiJ3gnIGlzICVkXG4iLCB4KTsKCiAgIHJldHVybiAwOwp9Cg==