From 7ed81b884715d26ff30e30f8b169bf1cb50868cd Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter@cassini.intern> Date: Thu, 14 Jan 2016 17:43:39 +0100 Subject: [PATCH] Beispielprogramme 14.1.2016 --- 20160114/objects-1.c | 28 ++++++++++++++++++++++++++++ 20160114/objects-2.c | 28 ++++++++++++++++++++++++++++ 20160114/objects-3.c | 34 ++++++++++++++++++++++++++++++++++ 20160114/objects-4.c | 34 ++++++++++++++++++++++++++++++++++ 20160114/objects-5.c | 34 ++++++++++++++++++++++++++++++++++ 20160114/objects-6.c | 34 ++++++++++++++++++++++++++++++++++ 6 files changed, 192 insertions(+) create mode 100644 20160114/objects-1.c create mode 100644 20160114/objects-2.c create mode 100644 20160114/objects-3.c create mode 100644 20160114/objects-4.c create mode 100644 20160114/objects-5.c create mode 100644 20160114/objects-6.c diff --git a/20160114/objects-1.c b/20160114/objects-1.c new file mode 100644 index 0000000..1a62866 --- /dev/null +++ b/20160114/objects-1.c @@ -0,0 +1,28 @@ +#include <stdio.h> + +typedef struct +{ + int type; +} t_base; + +typedef struct +{ + int type; + int content; +} t_integer; + +typedef struct +{ + int type; + char *content; +} t_string; + +int main (void) +{ + t_integer i = { 1, 42 }; + t_string s = { 2, "Hello, world!" }; + + t_base *object[] = { &i, &s }; + + return 0; +} diff --git a/20160114/objects-2.c b/20160114/objects-2.c new file mode 100644 index 0000000..a47cfb4 --- /dev/null +++ b/20160114/objects-2.c @@ -0,0 +1,28 @@ +#include <stdio.h> + +typedef struct +{ + int type; +} t_base; + +typedef struct +{ + int type; + int content; +} t_integer; + +typedef struct +{ + int type; + char *content; +} t_string; + +int main (void) +{ + t_integer i = { 1, 42 }; + t_string s = { 2, "Hello, world!" }; + + t_base *object[] = { (t_base *) &i, (t_base *) &s }; + + return 0; +} diff --git a/20160114/objects-3.c b/20160114/objects-3.c new file mode 100644 index 0000000..ff9224c --- /dev/null +++ b/20160114/objects-3.c @@ -0,0 +1,34 @@ +#include <stdio.h> + +typedef struct +{ + int type; +} t_base; + +typedef struct +{ + int type; + int content; +} t_integer; + +typedef struct +{ + int type; + char *content; +} t_string; + +int main (void) +{ + t_integer i = { 1, 42 }; + t_string s = { 2, "Hello, world!" }; + + t_base *object[] = { (t_base *) &i, (t_base *) &s }; + + for (int i = 0; i < 2; i++) + if (object[i]->type == 1) + printf ("Integer: %d\n", object[i]->content); + else if (object[i]->type == 2) + printf ("String: \"%s\"\n", object[i]->content); + + return 0; +} diff --git a/20160114/objects-4.c b/20160114/objects-4.c new file mode 100644 index 0000000..ef7bffe --- /dev/null +++ b/20160114/objects-4.c @@ -0,0 +1,34 @@ +#include <stdio.h> + +typedef struct +{ + int type; +} t_base; + +typedef struct +{ + int type; + int content; +} t_integer; + +typedef struct +{ + int type; + char *content; +} t_string; + +int main (void) +{ + t_integer i = { 1, 42 }; + t_string s = { 2, "Hello, world!" }; + + t_base *object[] = { (t_base *) &i, (t_base *) &s }; + + for (int i = 0; i < 2; i++) + if (object[i]->type == 1) + printf ("Integer: %d\n", (t_integer *) object[i]->content); + else if (object[i]->type == 2) + printf ("String: \"%s\"\n", (t_string *) object[i]->content); + + return 0; +} diff --git a/20160114/objects-5.c b/20160114/objects-5.c new file mode 100644 index 0000000..820181d --- /dev/null +++ b/20160114/objects-5.c @@ -0,0 +1,34 @@ +#include <stdio.h> + +typedef struct +{ + int type; +} t_base; + +typedef struct +{ + int type; + int content; +} t_integer; + +typedef struct +{ + int type; + char *content; +} t_string; + +int main (void) +{ + t_integer i = { 1, 42 }; + t_string s = { 2, "Hello, world!" }; + + t_base *object[] = { (t_base *) &i, (t_base *) &s }; + + for (int i = 0; i < 2; i++) + if (object[i]->type == 1) + printf ("Integer: %d\n", ((t_integer *) object[i])->content); + else if (object[i]->type == 2) + printf ("String: \"%s\"\n", ((t_string *) object[i])->content); + + return 0; +} diff --git a/20160114/objects-6.c b/20160114/objects-6.c new file mode 100644 index 0000000..0e77410 --- /dev/null +++ b/20160114/objects-6.c @@ -0,0 +1,34 @@ +#include <stdio.h> + +typedef struct +{ + int type; +} t_base; + +typedef struct +{ + int type; + int content; +} t_integer; + +typedef struct +{ + int type; + char *content; +} t_string; + +int main (void) +{ + t_integer i = { 1, 42 }; + t_string s = { 2, "Hello, world!" }; + + t_base *object[] = { (t_base *) &i, (t_base *) &s }; + + for (int i = 0; i < 2; i++) + if (object[i]->type == 2) + printf ("Integer: %d\n", ((t_integer *) object[i])->content); + else if (object[i]->type == 1) + printf ("String: \"%s\"\n", ((t_string *) object[i])->content); + + return 0; +} -- GitLab