From d16446f7b2b4f0d593746440fd1d70df665ba62d Mon Sep 17 00:00:00 2001 From: heck Date: Wed, 27 Jan 2021 22:24:08 +0100 Subject: [PATCH] lib_test - add functions ret/arg value/pointer (up to***) of type Primitive Structs containing array --- examples/lib/lib_test/functions.h | 14 +++++++ examples/lib/lib_test/lib_test.c | 65 +++++++++++++++++++------------ examples/lib/lib_test/main.c | 42 +++++++++++++++++++- examples/lib/lib_test/structs.h | 4 +- examples/lib/lib_test/vars.h | 2 +- 5 files changed, 98 insertions(+), 29 deletions(-) diff --git a/examples/lib/lib_test/functions.h b/examples/lib/lib_test/functions.h index d14aa43..2ed9c56 100644 --- a/examples/lib/lib_test/functions.h +++ b/examples/lib/lib_test/functions.h @@ -65,6 +65,7 @@ char*** func_pppPc_args_pppPc_ppPc(char*** arg1_ppPc,char** arg2_ppPc); // Structs // ======= +// Primitive Structs PS // By value struct _PS func__PS_args_V(); @@ -88,6 +89,19 @@ TAPS** func_ppTAPS_args_ppTAPS(TAPS** arg1_ppTAPS); TAPS*** func_pppTAPS_args_pppTAPS(TAPS*** arg1_pppTAPS); +// PSa - Primitive Structs containing array +// By value +TTAPSa func_TTAPSa_args_V(); + +TTAPSa func_TTAPSa_args_TTAPSa(TTAPSa arg1_TTAPSa); + +// By pointer +void func_V_args_pTTAPSa(TTAPSa* arg1_pTTAPSa); + +TTAPSa** func_ppTTAPSa_args_ppTTAPSa(TTAPSa** arg1_ppTTAPSa); + +TTAPSa*** func_pppTTAPSa_args_pppTTAPSa(TTAPSa*** arg1_pppTTAPSa); + diff --git a/examples/lib/lib_test/lib_test.c b/examples/lib/lib_test/lib_test.c index c29ce9d..8510af3 100644 --- a/examples/lib/lib_test/lib_test.c +++ b/examples/lib/lib_test/lib_test.c @@ -210,6 +210,45 @@ TAPS*** func_pppTAPS_args_pppTAPS(TAPS*** arg1_pppTAPS) { return arg1_pppTAPS; } +// PSa - Primitive Structs containing array +// By value +TTAPSa func_TTAPSa_args_V() { + TTAPSa ret; + ret.field__P_1 = 23; + strcpy(ret.field__Pa_1, "pEp"); + return ret; +} + +TTAPSa func_TTAPSa_args_TTAPSa(TTAPSa arg1_TTAPSa) { + arg1_TTAPSa.field__P_1 = 23; + strcpy(arg1_TTAPSa.field__Pa_1, "pEp"); + return arg1_TTAPSa; +} + +// By pointer +void func_V_args_pTTAPSa(TTAPSa* arg1_pTTAPSa) { + arg1_pTTAPSa->field__P_1 = 23; + strcpy(arg1_pTTAPSa->field__Pa_1, "pEp"); +} + +TTAPSa** func_ppTTAPSa_args_ppTTAPSa(TTAPSa** arg1_ppTTAPSa) { + *arg1_ppTTAPSa = NULL; + TTAPSa* newstr = (TTAPSa*) malloc(sizeof (TTAPSa)); + newstr->field__P_1 = 23; + strcpy(newstr->field__Pa_1, "pEp"); + *arg1_ppTTAPSa = newstr; + return arg1_ppTTAPSa; +} + +TTAPSa*** func_pppTTAPSa_args_pppTTAPSa(TTAPSa*** arg1_pppTTAPSa) { + **arg1_pppTTAPSa = NULL; + TTAPSa* newstr = (TTAPSa*) malloc(sizeof (TTAPSa)); + newstr->field__P_1 = 23; + strcpy(newstr->field__Pa_1, "pEp"); + **arg1_pppTTAPSa = newstr; + return arg1_pppTTAPSa; +} + // Variables // ========= @@ -244,9 +283,6 @@ extern struct PS var_PS; extern APS var_APS; // primitive structs containing arrays -extern struct _PSIa var__PSIa; -extern struct PSIa var_PSIa; -extern APSIa var_APSIa; extern struct _PSa var__PSa; extern struct PSa var_PSa; extern APSa var_APSa; @@ -302,9 +338,6 @@ extern TPS var_TPS; extern TAPS var_TAPS; // primitive structs containing arrays -extern T_PSIa var_T_PSIa; -extern TPSIa var_TPSIa; -extern TAPSIa var_TAPSIa; extern T_PSa var_T_PSa; extern TPSa var_TPSa; extern TAPSa var_TAPSa; @@ -366,9 +399,6 @@ extern TTPS var_TTPS; extern TTAPS var_TTAPS; // primitive structs containing arrays -extern TT_PSIa var_TT_PSIa; -extern TTPSIa var_TTPSIa; -extern TTAPSIa var_TTAPSIa; extern TT_PSa var_TT_PSa; extern TTPSa var_TTPSa; extern TTAPSa var_TTAPSa; @@ -429,7 +459,7 @@ extern TTAXE var_TTAXE; //void var_a_V; // _P -extern char var_a_P[3]; +extern char var_a_P[4]; // enums // ===== @@ -456,9 +486,6 @@ extern struct PS var_aPS[3]; extern APS var_aAPS[3]; // primitive structs containing arrays -extern struct _PSIa var_a_PSIa[3]; -extern struct PSIa var_aPSIa[3]; -extern APSIa var_aAPSIa[3]; extern struct _PSa var_a_PSa[3]; extern struct PSa var_aPSa[3]; extern APSa var_aAPSa[3]; @@ -514,9 +541,6 @@ extern TPS var_aTPS[3]; extern TAPS var_aTAPS[3]; // primitive structs containing arrays -extern T_PSIa var_aT_PSIa[3]; -extern TPSIa var_aTPSIa[3]; -extern TAPSIa var_aTAPSIa[3]; extern T_PSa var_aT_PSa[3]; extern TPSa var_aTPSa[3]; extern TAPSa var_aTAPSa[3]; @@ -578,9 +602,6 @@ extern TTPS var_aTTPS[3]; extern TTAPS var_aTTAPS[3]; // primitive structs containing arrays -extern TT_PSIa var_aTT_PSIa[3]; -extern TTPSIa var_aTTPSIa[3]; -extern TTAPSIa var_aTTAPSIa[3]; extern TT_PSa var_aTT_PSa[3]; extern TTPSa var_aTTPSa[3]; extern TTAPSa var_aTTAPSa[3]; @@ -657,9 +678,6 @@ extern TaTPS var_TaTPS; extern TaTAPS var_TaTAPS; // primitive structs containing arrays -extern TaT_PSIa var_TaT_PSIa; -extern TaTPSIa var_TaTPSIa; -extern TaTAPSIa var_TaTAPSIa; extern TaT_PSa var_TaT_PSa; extern TaTPSa var_TaTPSa; extern TaTAPSa var_TaTAPSa; @@ -717,9 +735,6 @@ extern TaTPS var_aTaTPS[3]; extern TaTAPS var_aTaTAPS[3]; // primitive structs containing arrays -extern TaT_PSIa var_aTaT_PSIa[3]; -extern TaTPSIa var_aTaTPSIa[3]; -extern TaTAPSIa var_aTaTAPSIa[3]; extern TaT_PSa var_aTaT_PSa[3]; extern TaTPSa var_aTaTPSa[3]; extern TaTAPSa var_aTaTAPSa[3]; diff --git a/examples/lib/lib_test/main.c b/examples/lib/lib_test/main.c index d55dcee..4cab776 100644 --- a/examples/lib/lib_test/main.c +++ b/examples/lib/lib_test/main.c @@ -221,6 +221,46 @@ int main() { assert(inout->field__P_1 == 23); assert(inout->field__P_2 == 23); } - + { + printf("testing: func_TTAPSa_args_V\n"); + TTAPSa ret = func_TTAPSa_args_V(); + assert(ret.field__P_1 == 23); + assert(!strcmp(ret.field__Pa_1, "pEp")); + } + { + printf("testing: func_TTAPSa_args_TTAPSa\n"); + TTAPSa in; + TTAPSa ret = func_TTAPSa_args_TTAPSa(in); + assert(ret.field__P_1 == 23); + assert(!strcmp(ret.field__Pa_1, "pEp")); + } + { + printf("testing: func_V_args_pTTAPSa\n"); + TTAPSa *inout = (TTPSa*)malloc(sizeof (TTPSa)); + func_V_args_pTTAPSa(inout); + assert(inout->field__P_1 == 23); + assert(!strcmp(inout->field__Pa_1, "pEp")); + } + { + printf("testing: func_ppTTAPSa_args_ppTTAPSa\n"); + TTAPSa *inout = (TTPSa*)malloc(sizeof (TTPSa)); + TTPSa** pp_ret = func_ppTTAPSa_args_ppTTAPSa(&inout); + TTAPSa* ret = *pp_ret; + assert(ret->field__P_1 == 23); + assert(!strcmp(ret->field__Pa_1, "pEp")); + assert(inout->field__P_1 == 23); + assert(!strcmp(inout->field__Pa_1, "pEp")); + } + { + printf("testing: func_pppTTAPSa_args_pppTTAPSa\n"); + TTAPSa *inout = (TTPSa*)malloc(sizeof (TTPSa)); + TTPSa** pp_inout = &inout; + TTPSa*** pp_ret = func_pppTTAPSa_args_pppTTAPSa(&pp_inout); + TTAPSa* ret = **pp_ret; + assert(ret->field__P_1 == 23); + assert(!strcmp(ret->field__Pa_1, "pEp")); + assert(inout->field__P_1 == 23); + assert(!strcmp(inout->field__Pa_1, "pEp")); + } } diff --git a/examples/lib/lib_test/structs.h b/examples/lib/lib_test/structs.h index 76fed66..f4ce08d 100644 --- a/examples/lib/lib_test/structs.h +++ b/examples/lib/lib_test/structs.h @@ -115,14 +115,14 @@ typedef struct PS { // _PSa = primitive struct containing an array without an alias struct _PSa { int field__P_1; - char field__Pa_1[3]; + char field__Pa_1[4]; }; // PSa = primitive struct containing an array // APSa = alias of a primitive struct containing an array typedef struct PSa { int field__P_1; - char field__Pa_1[3]; + char field__Pa_1[4]; } APSa; // _CS = complex struct without a an alias diff --git a/examples/lib/lib_test/vars.h b/examples/lib/lib_test/vars.h index f2d178b..819c4c4 100644 --- a/examples/lib/lib_test/vars.h +++ b/examples/lib/lib_test/vars.h @@ -218,7 +218,7 @@ extern TTAXE var_TTAXE; //void var_a_V; // _P -extern char var_a_P[3]; +extern char var_a_P[4]; // enums // =====