Hallo,
gibt es in C eine Möglichkeit, einen als Union definierten
Funktionsparameter beim Funktionsaufruf auf einen Member der Union zu
casten?
Hier ein Beispiel:
1 | //Definition Union
|
2 | typedef union {
|
3 | uint8_t bla[2];
|
4 | uint16_t blubb;
|
5 | } _Piep;
|
6 |
|
7 | //aufzurufende Funktion
|
8 | void func(_Piep param) {
|
9 | ...
|
10 | }
|
11 |
|
12 | //aufrufende Funktion
|
13 | void func_call(void) {
|
14 | func((???) 0x1234); //kann man hier direkt casten?
|
15 | }
|
Das hier funktioniert logischerweise, ...
1 | //aufrufende Funktion
|
2 | void func_call(void) {
|
3 | _Piep param;
|
4 | param.blubb = 0x1234;
|
5 | func(param); //okay
|
6 | }
|
... da ja in der aufrufenden Funktion eine entsprechende Variable
angelegt ist. Im Prinzip geht's nur um die Frage, ob es möglich ist,
dass man sich in der aufrufenden Funktion die zusätzliche Variable
spart.
In C++ würde man es ja mit der Funktionsüberladung hinbekommen und
bräuchte dann gar keinen cast.
Ralf