Guten morgen,
um eine Structur (oder auch normale vaiable)aus einer Funktion
zurückzugeben, kann man dies entweder als returnwert machen oder als
pointer übergeben.
file1.h
1 | typedef struct
|
2 | {
|
3 | uint8 x1;
|
4 | uint8 x2;
|
5 | uint8 x3;
|
6 | }testStruct_ts;
|
file1.c
1 | static cp6xModelRequestData_ts cp6xModelRequestData_s
|
2 |
|
3 | void getStructData(testStruct_ts* data)
|
4 | {
|
5 | *data = localStruct_s;
|
6 | }
|
7 |
|
8 | void testStruct_ts returnStructData(void)
|
9 | {
|
10 | return localStruct_s;
|
11 | }
|
file2.c
1 | #include "file1.h"
|
2 | void test(void)
|
3 | {
|
4 | testStruct_ts test;
|
5 | testStruct_ts test2;
|
6 | getStructData(&test);
|
7 | test2=returnStructData();
|
8 | ...
|
9 | }
|
im Debugger sehe ich, dass test und test2 identisch sind (ausgenommen
der Speicheradressen der variablen an für sich).
Aber was bringt mir welche methode welchen Vorteil?