Browse Source

lib_test - added char and struct double/tripple pointer functions (ret,arg)

master
heck 4 years ago
parent
commit
44c09f7465
  1. 43
      examples/lib/lib_test/functions.h
  2. 138
      examples/lib/lib_test/lib_test.c

43
examples/lib/lib_test/functions.h

@ -10,7 +10,9 @@
extern "C" { extern "C" {
#endif #endif
//Int // Int
// ===
// By Value
void func_V_args_V(); void func_V_args_V();
int func_Pi_args_V(); int func_Pi_args_V();
@ -24,13 +26,20 @@ void func_V_args_pPi(unsigned int* const arg1_pP);
int func_Pi_args_Pi_pPi_pPi(int arg1_P,unsigned int* const arg2_pP, int* arg3_pP); int func_Pi_args_Pi_pPi_pPi(int arg1_P,unsigned int* const arg2_pP, int* arg3_pP);
// Char // Char
// ====
// By Value
char func_Pc_args_V(); char func_Pc_args_V();
void func_V_args_Pc(char arg1_Pc); void func_V_args_Pc(char arg1_Pc);
char func_Pc_args_Pc(char arg1_Pc); char func_Pc_args_Pc(char arg1_Pc);
void func_V_args_pPc(char* arg1_pPc); // Char*
char* func_pPcStr_args_V();
void func_V_args_pPcChr(char* arg1_pPc);
void func_V_args_pPcStr(char* arg1_pPc);
char func_Pc_args_Pc_pPc_pPc(char arg1_Pc,char* arg2_pPc,char* arg3_pPc); char func_Pc_args_Pc_pPc_pPc(char arg1_Pc,char* arg2_pPc,char* arg3_pPc);
@ -46,11 +55,35 @@ const char* func_pPcc_args_pPcc_pPcc(const char* arg1_pPcc,const char* arg2_pPcc
// String-by-ref (char**) // String-by-ref (char**)
char** func_ppPc_args_V(); char** func_ppPc_args_V();
void func_V_args_ppPc(char** arg1_ppPc); char*** func_pppPc_args_V(); //DONE
void func_V_args_ppPc(char** arg1_ppPc); //
char*** func_pppPc_args_pppPc(char*** arg1_ppPc);
char*** func_pppPc_args_pppPc_ppPc(char*** arg1_ppPc,char** arg2_ppPc);
// Structs
// =======
// By value
struct _PS func__PS_args_V(); //DONE
TTAPS func_TTAPS_args_V(); //DONE
// By pointer
TAPS* func_pTAPS_args_V(); //DONE
TAPS** func_ppTAPS_args_V(); //DONE
TAPS*** func_pppTAPS_args_V(); //DONE
void func_V_args_pTAPS(TAPS* arg1_pTAPS); //DONE
TAPS** func_ppTAPS_args_ppTAPS(TAPS** arg1_ppTAPS);
TAPS*** func_pppTAPS_args_pppTAPS(TAPS*** arg1_pppTAPS);
char** func_ppPc_args_ppPc(char** arg1_ppPc);
char** func_ppPc_args_ppPc_ppPc(char** arg1_ppPc,char** arg2_ppPc);

138
examples/lib/lib_test/lib_test.c

@ -17,7 +17,7 @@ int func_Pi_args_V() {
} }
void func_V_args_Pi(int arg1_P) { void func_V_args_Pi(int arg1_P) {
printf("%i", arg1_P); printf("DEBUG: %i\n", arg1_P);
} }
int func_Pi_args_Pi(int arg1_P) { int func_Pi_args_Pi(int arg1_P) {
@ -40,17 +40,30 @@ char func_Pc_args_V() {
} }
void func_V_args_Pc(char arg1_Pc) { void func_V_args_Pc(char arg1_Pc) {
printf("%c", arg1_Pc); printf("DEBUG: %c\n", arg1_Pc);
} }
char func_Pc_args_Pc(char arg1_Pc) { char func_Pc_args_Pc(char arg1_Pc) {
return toupper(arg1_Pc); return toupper(arg1_Pc);
} }
void func_V_args_pPc(char* arg1_pPc) { // Char*
char* func_pPcStr_args_V() {
char *ret = (char*) calloc(4,sizeof (char));
strcpy(ret,"pEp");
return ret;
}
void func_V_args_pPcChr(char* arg1_pPc) {
*arg1_pPc = toupper(*arg1_pPc); *arg1_pPc = toupper(*arg1_pPc);
} }
void func_V_args_pPcStr(char* arg1_pPc) {
for(int i = 0; arg1_pPc[i] != '\0'; i++) {
arg1_pPc[i] = toupper(arg1_pPc[i]);
}
}
char func_Pc_args_Pc_pPc_pPc(char arg1_Pc,char* arg2_pPc,char* arg3_pPc){ char func_Pc_args_Pc_pPc_pPc(char arg1_Pc,char* arg2_pPc,char* arg3_pPc){
*arg2_pPc = toupper(*arg2_pPc); *arg2_pPc = toupper(*arg2_pPc);
*arg3_pPc = toupper(*arg3_pPc); *arg3_pPc = toupper(*arg3_pPc);
@ -63,45 +76,128 @@ const char* func_pPcc_args_V() {
} }
void func_V_args_pPcc(const char* arg1_pPcc) { void func_V_args_pPcc(const char* arg1_pPcc) {
printf("%s", arg1_pPcc); printf("DEBUG: %s\n", arg1_pPcc);
} }
const char* func_pPcc_args_pPcc(const char* arg1_pPcc) { const char* func_pPcc_args_pPcc(const char* arg1_pPcc) {
return strdup(arg1_pPcc); return arg1_pPcc;
} }
const char* func_pPcc_args_pPcc_pPcc(const char* arg1_pPcc,const char* arg2_pPcc) { const char* func_pPcc_args_pPcc_pPcc(const char* arg1_pPcc,const char* arg2_pPcc) {
printf("%s", arg1_pPcc); printf("DEBUG: %s\n", arg1_pPcc);
printf("%s", arg2_pPcc); printf("DEBUG: %s\n", arg2_pPcc);
return strdup(arg1_pPcc); return arg1_pPcc;
} }
// String-by-ref (char**) // String-by-ref (char**)
char** func_ppPc_args_V() { char** func_ppPc_args_V() {
char* ret = (char*)calloc(23,sizeof(char)); char* ret = (char*)calloc(4,sizeof(char));
ret = "pEp"; strcpy(ret,"pEp");
return &ret; char** pp_ret = (char**)calloc(1,sizeof(char**));
pp_ret = &ret;
return pp_ret;
}
char*** func_pppPc_args_V() {
char* ret = (char*)calloc(4,sizeof(char));
strcpy(ret,"pEp");
char** pp_ret = (char**)calloc(1,sizeof(char**));
pp_ret = &ret;
char*** ppp_ret = (char***)calloc(1,sizeof(char***));
ppp_ret = &pp_ret;
return ppp_ret;
} }
void func_V_args_ppPc(char** arg1_ppPc) { void func_V_args_ppPc(char** arg1_ppPc) {
*arg1_ppPc = (char*) calloc(23, sizeof (char)); *arg1_ppPc = NULL;
*arg1_ppPc = "pEp"; char* newstr = (char*) calloc(4,sizeof (char ));
strcpy(newstr,"pEp");
*arg1_ppPc = newstr;
} }
char** func_ppPc_args_ppPc(char** arg1_ppPc) { char*** func_pppPc_args_pppPc(char*** arg1_ppPc) {
*arg1_ppPc = (char*) calloc(23, sizeof (char)); **arg1_ppPc = NULL;
*arg1_ppPc = "pEp"; char* newstr = (char*) calloc(4,sizeof (char ));
strcpy(newstr,"pEp");
**arg1_ppPc = newstr;
return arg1_ppPc; return arg1_ppPc;
} }
char** func_ppPc_args_ppPc_ppPc(char** arg1_ppPc,char** arg2_ppPc) { char*** func_pppPc_args_pppPc_ppPc(char*** arg1_ppPc,char** arg2_ppPc) {
*arg1_ppPc = (char*) calloc(23, sizeof (char)); **arg1_ppPc = NULL;
*arg1_ppPc = "pEp"; *arg2_ppPc = NULL;
*arg2_ppPc = (char*) calloc(23, sizeof (char)); char* newstr = (char*) calloc(4,sizeof (char ));
*arg2_ppPc = "pEp"; strcpy(newstr,"pEp");
**arg1_ppPc = newstr;
*arg2_ppPc = newstr;
return arg1_ppPc; return arg1_ppPc;
} }
struct _PS func__PS_args_V() {
struct _PS* ret = (struct _PS*)malloc(sizeof(struct _PS));
ret->field__P_1=23;
ret->field__P_2=23;
return *ret;
}
TTAPS func_TTAPS_args_V() {
TTAPS* ret = (TTAPS*)malloc(sizeof(TTAPS));
ret->field__P_1=23;
ret->field__P_2=23;
return *ret;
}
TAPS* func_pTAPS_args_V() {
TAPS* ret = (TAPS*)malloc(sizeof(TAPS));
ret->field__P_1 = 23;
ret->field__P_2 = 23;
return ret;
}
TAPS** func_ppTAPS_args_V() {
TAPS* ret = (TAPS*)malloc(sizeof(TAPS));
ret->field__P_1 = 23;
ret->field__P_2 = 23;
TAPS** pp_ret = (TAPS**) malloc(sizeof (TAPS**));
pp_ret = &ret;
return pp_ret;
}
TAPS*** func_pppTAPS_args_V() {
TAPS* ret = (TAPS*)malloc(sizeof(TAPS));
ret->field__P_1 = 23;
ret->field__P_2 = 23;
TAPS** pp_ret = (TAPS**) malloc(sizeof (TAPS**));
pp_ret = &ret;
TAPS*** ppp_ret = (TAPS***) malloc(sizeof (TAPS***));
ppp_ret = &pp_ret;
return ppp_ret;
}
void func_V_args_pTAPS(TAPS* arg1_pTAPS) {
arg1_pTAPS->field__P_1 = 23;
arg1_pTAPS->field__P_2 = 23;
}
TAPS** func_ppTAPS_args_ppTAPS(TAPS** arg1_ppTAPS) {
*arg1_ppTAPS = NULL;
TAPS* newstr = (TAPS*) malloc(sizeof (TAPS));
newstr->field__P_1 = 23;
newstr->field__P_2 = 23;
*arg1_ppTAPS = newstr;
return arg1_ppTAPS;
}
TAPS*** func_pppTAPS_args_pppTAPS(TAPS*** arg1_pppTAPS) {
**arg1_pppTAPS = NULL;
TAPS* newstr = (TAPS*) malloc(sizeof (TAPS));
newstr->field__P_1 = 23;
newstr->field__P_2 = 23;
**arg1_pppTAPS = newstr;
return arg1_pppTAPS;
}
// Variables // Variables
// ========= // =========

Loading…
Cancel
Save