Der "." heißt "member access operator".
Vermutlich ist es ja nicht so simple, wie Du es hier darstellst: Du hast
einen Datentyp bzw. typ-alias state_t und möchtest eine Aussage, ob das
Objekt, was die Funktion my_function() liefert, in einem bestimmten
Zustand ist.
Da C keine Elementfunktionen für Operationen der Datentypen kennt, musst
Du es mit freien Funktionen machen. Erschwerend kommt natürlich hinzu,
dass man isValid(...) in C nicht überladen kann, und man kann auch keine
namespaces benutzen.
Man kann es so machen:
1 | #include <stdbool.h>
|
2 |
|
3 | bool isValid(state_t o) {
|
4 | return (o.value != 0);
|
5 | }
|
Kommt aber noch der DT state2_t hinzu, ist man schon wieder
aufgeschmissen in C, weil man nicht
1 | bool isValid(state_t o) {
|
2 | return (o.value != 0);
|
3 | }
|
4 | bool isValid(state2_t o) {
|
5 | return (o.x != 0);
|
6 | }
|
überladen kann.
Es bleibt also nur das unschöne Benutzen eines Namenspräfixes für die
Operationen ...
Oder Du lässt es so wie Du es oben geschrieben hast, ohne der
Zuständsüberprüfung einen sinnvollen Namen zu geben.
But: names matter!