#include "lib_test.h" #include #include #include // FUNCTIONS // Int void func_V_args_V() { } int func_Pi_args_V() { return 23; } void func_V_args_Pi(int arg1_P) { printf("%i", arg1_P); } int func_Pi_args_Pi(int arg1_P) { return ++arg1_P; } void func_V_args_pPi(unsigned int* const arg1_pP) { ++(*arg1_pP); } int func_Pi_args_Pi_pPi_pPi(int arg1_P,unsigned int* const arg2_pP, int* arg3_pP) { ++(*arg2_pP); ++(*arg3_pP); return *arg2_pP; } // Char char func_Pc_args_V() { return 'A'; } void func_V_args_Pc(char arg1_Pc) { printf("%c", arg1_Pc); } char func_Pc_args_Pc(char arg1_Pc) { return toupper(arg1_Pc); } void func_V_args_pPc(char* arg1_pPc) { *arg1_pPc = toupper(*arg1_pPc); } char func_Pc_args_Pc_pPc_pPc(char arg1_Pc,char* arg2_pPc,char* arg3_pPc){ *arg2_pPc = toupper(*arg2_pPc); *arg3_pPc = toupper(*arg3_pPc); return 'A'; } // String-by-value (const char*) const char* func_pPcc_args_V() { return "pEp"; } void func_V_args_pPcc(const char* arg1_pPcc) { printf("%s", arg1_pPcc); } const char* func_pPcc_args_pPcc(const char* arg1_pPcc) { return strdup(arg1_pPcc); } const char* func_pPcc_args_pPcc_pPcc(const char* arg1_pPcc,const char* arg2_pPcc) { printf("%s", arg1_pPcc); printf("%s", arg2_pPcc); return strdup(arg1_pPcc); } // Variables // ========= // _V = Void //void var__V; // _P extern char var__P = 'x'; // enums // ===== // Incomplete types: // enum _IE var__IE; // enum IE var_IE; // AIE var_AIE; extern enum _E var__E; extern enum E var_E; extern AE var_AE; extern AXE var_AXE; // structs // ======= // Incomplete types // struct _IS var__IS; // struct IS var_IS; // AIS var_AIS; // primitive structs extern struct _PS var__PS; 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; // complex structs extern struct _CS var__CS; extern struct CS var_CS; extern ACS var_ACS; extern struct _CCS var__CCS; extern struct CCS var_CCS; extern ACCS var_ACCS; // nested structs / hosting structs struct _HS var__HS; extern AHS var_AHS; extern struct HS var_HS; extern struct HHS var_HHS; extern AHHS var_AHHS; extern struct _HHS var__HHS; extern struct _HS1 var__HS1; // FORBIDDEN IN C++ #ifndef __cplusplus extern struct _NCS var__NCS; extern struct _NPS var__NPS; extern struct _NHS var__NHS; extern struct _NNPS var__NNPS; extern struct _NHS1 var__NHS1; extern struct _NNCS var__NNCS; extern enum _NENHS var__NENHS; extern enum _NEHS var__NEHS; #endif // TYPEDEFS // ======== // Typedefs of primitive // --------------------- //TV var_TV; T_P var_T_P; // Typedefs of structs // ------------------ // Incomplete types //T_IS var_T_IS; //TIS var_TIS; //TAIS var_TAIS; // primitive structs extern T_PS var_T_PS; 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; // complex structs extern T_CS var_T_CS; extern TCS var_TCS; extern TACS var_TACS; extern T_CCS var_T_CCS; extern TCCS var_TCCS; extern TACCS var_TACCS; // nested structs / hosting structs extern T_HS var_T_HS; extern THS var_THS; extern TAHS var_TAHS; extern T_HHS var_T_HHS; extern THHS var_THHS; extern TAHHS var_TAHHS; extern T_HS1 var_T_HS1; // FORBIDDEN IN C++ #ifndef __cplusplus extern T_NENHS var_T_NENHS; extern T_NCS var_T_NCS; extern T_NPS var_T_NPS; extern T_NHS var_T_NHS; extern T_NNPS var_T_NNPS; extern T_NNCS var_T_NNCS; extern T_NHS1 var_T_NHS1; extern T_NEHS var_T_NEHS; #endif // Typedef of enums // ---------------- // Incomplete types //T_IE var_TIE; //TIE var_TIE; //TAIE var_TAIE; extern T_E var_T_E; extern TE var_TE; extern TAE var_TAE; extern TAXE var_TAXE; // TYPEDEFS OF TYPEDEFS // ==================== // Typedefs of primitive // --------------------- extern TT_P var_TT_P; // typedefs of typedefs of structs // ------------------------------- // primitive structs extern TT_PS var_TT_PS; 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; // complex structs extern TT_CS var_TT_CS; extern TTCS var_TTCS; extern TTACS var_TTACS; extern TT_CCS var_TT_CCS; extern TTCCS var_TTCCS; extern TTACCS var_TTACCS; // nested structs / hosting structs extern TT_HS var_TT_HS; extern TTHS var_TTHS; extern TTAHS var_TTAHS; extern TT_HHS var_TT_HHS; extern TTHHS var_TTHHS; extern TTAHHS var_TTAHHS; extern TT_HS1 var_TT_HS1; // FORBIDDEN IN C++ #ifndef __cplusplus extern TT_NENHS var_TT_NENHS; extern TT_NCS var_TT_NCS; extern TT_NPS var_TT_NPS; extern TT_NHS var_TT_NHS; extern TT_NNPS var_TT_NNPS; extern TT_NNCS var_TT_NNCS; extern TT_NHS1 var_TT_NHS1; extern TT_NEHS var_TT_NEHS; #endif // typedefs of typedefs enums // -------------------------- extern TT_E var_TT_E; extern TTE var_TTE; extern TTAE var_TTAE; extern TTAXE var_TTAXE; // =================== // ARRAYS OF ALL ABOVE // =================== // only complete arrays. no [] // Variables // ========= // _V = Void //void var_a_V; // _P extern char var_a_P[3]; // enums // ===== // Incomplete types: // enum _IE var__IE; // enum IE var_IE; // AIE var_AIE; extern enum _E var_a_E[3]; extern enum E var_aE[3]; extern AE var_aAE[3]; extern AXE var_aAXE[3]; // structs // ======= // Incomplete types // struct _IS var__IS; // struct IS var_IS; // AIS var_AIS; // primitive structs extern struct _PS var_a_PS[3]; 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]; // complex structs extern struct _CS var_a_CS[3]; extern struct CS var_aCS[3]; extern ACS var_aACS[3]; extern struct _CCS var_a_CCS[3]; extern struct CCS var_aCCS[3]; extern ACCS var_aACCS[3]; // nested structs / hosting structs extern struct _HS var_a_HS[3]; extern struct HS var_aHS[3]; extern AHS var_aAHS[3]; extern struct _HHS var_a_HHS[3]; extern struct HHS var_aHHS[3]; extern AHHS var_aAHHS[3]; extern struct _HS1 var_a_HS1[3]; // FORBIDDEN IN C++ #ifndef __cplusplus extern struct _NCS var_a_NCS[3]; extern struct _NPS var_a_NPS[3]; extern struct _NHS var_a_NHS[3]; extern struct _NNPS var_a_NNPS[3]; extern struct _NHS1 var_a_NHS1[3]; extern struct _NNCS var_a_NNCS[3]; extern enum _NENHS var_a_NENHS[3]; extern enum _NEHS var_a_NEHS[3]; #endif // TYPEDEFS // ======== // Typedefs of primitive // --------------------- //TV var_TV; extern T_P var_aT_P[3]; // Typedefs of structs // ------------------ // Incomplete types //T_IS var_T_IS; //TIS var_TIS; //TAIS var_TAIS; // primitive structs extern T_PS var_aT_PS[3]; 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]; // complex structs extern T_CS var_aT_CS[3]; extern TCS var_aTCS[3]; extern TACS var_aTACS[3]; extern T_CCS var_aT_CCS[3]; extern TCCS var_aTCCS[3]; extern TACCS var_aTACCS[3]; // nested structs / hosting structs extern T_HS var_aT_HS[3]; extern THS var_aTHS[3]; extern TAHS var_aTAHS[3]; extern T_HHS var_aT_HHS[3]; extern THHS var_aTHHS[3]; extern TAHHS var_aTAHHS[3]; extern T_HS1 var_aT_HS1[3]; // FORBIDDEN IN C++ #ifndef __cplusplus extern T_NENHS var_aT_NENHS[3]; extern T_NCS var_aT_NCS[3]; extern T_NPS var_aT_NPS[3]; extern T_NHS var_aT_NHS[3]; extern T_NNPS var_aT_NNPS[3]; extern T_NNCS var_aT_NNCS[3]; extern T_NHS1 var_aT_NHS1[3]; extern T_NEHS var_aT_NEHS[3]; #endif // Typedef of enums // ---------------- // Incomplete types //T_IE var_aTIE[3]; //TIE var_aTIE[3]; //TAIE var_aTAIE[3]; extern T_E var_aT_E[3]; extern TE var_aTE[3]; extern TAE var_aTAE[3]; extern TAXE var_aTAXE[3]; // TYPEDEFS OF TYPEDEFS // ==================== // Typedefs of primitive // --------------------- extern TT_P var_aTT_P[3]; // typedefs of typedefs of structs // ------------------------------- // primitive structs extern TT_PS var_aTT_PS[3]; 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]; // complex structs extern TT_CS var_aTT_CS[3]; extern TTCS var_aTTCS[3]; extern TTACS var_aTTACS[3]; extern TT_CCS var_aTT_CCS[3]; extern TTCCS var_aTTCCS[3]; extern TTACCS var_aTTACCS[3]; // nested structs / hosting structs extern TT_HS var_aTT_HS[3]; extern TTHS var_aTTHS[3]; extern TTAHS var_aTTAHS[3]; extern TT_HHS var_aTT_HHS[3]; extern TTHHS var_aTTHHS[3]; extern TTAHHS var_aTTAHHS[3]; extern TT_HS1 var_aTT_HS1[3]; // FORBIDDEN IN C++ #ifndef __cplusplus extern TT_NENHS var_aTT_NENHS[3]; extern TT_NCS var_aTT_NCS[3]; extern TT_NPS var_aTT_NPS[3]; extern TT_NHS var_aTT_NHS[3]; extern TT_NNPS var_aTT_NNPS[3]; extern TT_NNCS var_aTT_NNCS[3]; extern TT_NHS1 var_aTT_NHS1[3]; extern TT_NEHS var_aTT_NEHS[3]; #endif // typedefs of typedefs enums // -------------------------- extern TT_E var_aTT_E[3]; extern TTE var_aTTE[3]; extern TTAE var_aTTAE[3]; extern TTAXE var_aTTAXE[3]; // ========================================= //AND ALL OF THE ABOVE // // ▄▄▄ ▄████ ▄▄▄ ██▓ ███▄ █ //▒████▄ ██▒ ▀█▒▒████▄ ▓██▒ ██ ▀█ █ //▒██ ▀█▄ ▒██░▄▄▄░▒██ ▀█▄ ▒██▒▓██ ▀█ ██▒ //░██▄▄▄▄██ ░▓█ ██▓░██▄▄▄▄██ ░██░▓██▒ ▐▌██▒ // ▓█ ▓██▒░▒▓███▀▒ ▓█ ▓██▒░██░▒██░ ▓██░ // ▒▒ ▓▒█░ ░▒ ▒ ▒▒ ▓▒█░░▓ ░ ▒░ ▒ ▒ // ▒ ▒▒ ░ ░ ░ ▒ ▒▒ ░ ▒ ░░ ░░ ░ ▒░ // ░ ▒ ░ ░ ░ ░ ▒ ▒ ░ ░ ░ ░ // ░ ░ ░ ░ ░ ░ ░ // // ...for typedefs of arrays, but only TaT* // ======================================== // TYPEDEFS OF TYPEDEFS // ==================== // Typedefs of primitive // --------------------- extern TaT_P var_TaT_P; // typedefs of typedefs of structs // ------------------------------- // primitive structs extern TaT_PS var_TaT_PS; 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; // complex structs extern TaT_CS var_TaT_CS; extern TaTCS var_TaTCS; extern TaTACS var_TaTACS; extern TaT_CCS var_TaT_CCS; extern TaTCCS var_TaTCCS; extern TaTACCS var_TaTACCS; // nested structs / hosting structs extern TaT_HS var_TaT_HS; extern TaTHS var_TaTHS; extern TaTAHS var_TaTAHS; extern TaT_HHS var_TaT_HHS; extern TaTHHS var_TaTHHS; extern TaTAHHS var_TaTAHHS; extern TaT_HS1 var_TaT_HS1; // FORBIDDEN IN C++ #ifndef __cplusplus extern TaT_NCS var_TaT_NCS; extern TaT_NPS var_TaT_NPS; extern TaT_NHS var_TaT_NHS; extern TaT_NNPS var_TaT_NNPS; extern TaT_NNCS var_TaT_NNCS; extern TaT_NHS1 var_TaT_NHS1; extern TaT_NENHS var_TaT_NENHS; extern TaT_NEHS var_TaT_NEHS; #endif // typedefs of typedefs enums // -------------------------- extern TaT_E var_TaT_E; extern TaTE var_TaTE; extern TaTAE var_TaTAE; extern TaTAXE var_TaTAXE; // TYPEDEFS OF TYPEDEFS // ==================== // Typedefs of primitive // --------------------- extern TaT_P var_aTaT_P[3]; // typedefs of typedefs of structs // ------------------------------- // primitive structs extern TaT_PS var_aTaT_PS[3]; 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]; // complex structs extern TaT_CS var_aTaT_CS[3]; extern TaTCS var_aTaTCS[3]; extern TaTACS var_aTaTACS[3]; extern TaT_CCS var_aTaT_CCS[3]; extern TaTCCS var_aTaTCCS[3]; extern TaTACCS var_aTaTACCS[3]; // nested structs / hosting structs extern TaT_HS var_aTaT_HS[3]; extern TaTHS var_aTaTHS[3]; extern TaT_HHS var_aTaT_HHS[3]; extern TaTAHS var_aTaTAHS[3]; extern TaTHHS var_aTaTHHS[3]; extern TaTAHHS var_aTaTAHHS[3]; extern TaT_HS1 var_aTaT_HS1[3]; // FORBIDDEN IN C++ #ifndef __cplusplus extern TaT_NCS var_aTaT_NCS[3]; extern TaT_NPS var_aTaT_NPS[3]; extern TaT_NHS var_aTaT_NHS[3]; extern TaT_NNPS var_aTaT_NNPS[3]; extern TaT_NNCS var_aTaT_NNCS[3]; extern TaT_NENHS var_aTaT_NENHS[3]; extern TaT_NHS1 var_aTaT_NHS1[3]; extern TaT_NEHS var_aTaT_NEHS[3]; #endif // typedefs of typedefs enums // -------------------------- extern TaT_E var_aTaT_E[3]; extern TaTE var_aTaTE[3]; extern TaTAE var_aTaTAE[3]; extern TaTAXE var_aTaTAXE[3];