Function Type
Function type defines a signature of a function what it the calling convention, which type is the return value of, how many and which type of arguments a function accepts and so on.
#include <jnc_FunctionType.h> // enums enum jnc_FunctionPtrKind; enum jnc_FunctionTypeFlag; // structs struct jnc_FunctionType; // global functions const char* jnc_getFunctionTypeFlagString(jnc_FunctionTypeFlag flag); const char* jnc_getFunctionPtrKindString(jnc_FunctionPtrKind ptrKind); static jnc_FunctionPtrKind jnc_getFunctionPtrKindFromFlags(uint_t flags); bool_t jnc_FunctionArg_hasDefaultValue(jnc_FunctionArg* arg); const char* jnc_FunctionArg_getDefaultValueString_v(jnc_FunctionArg* arg); jnc_Type* jnc_FunctionType_getReturnType(jnc_FunctionType* type); size_t jnc_FunctionType_getArgCount(jnc_FunctionType* type); jnc_FunctionArg* jnc_FunctionType_getArg( jnc_FunctionType* type, size_t index ); jnc_FunctionPtrType* jnc_FunctionType_getFunctionPtrType( jnc_FunctionType* type, jnc_TypeKind typeKind, uint_t flags ); jnc_FunctionType* jnc_FunctionType_getShortType(jnc_FunctionType* type); jnc_FunctionPtrKind jnc_FunctionPtrType_getPtrKind(jnc_FunctionPtrType* type); jnc_FunctionType* jnc_FunctionPtrType_getTargetType(jnc_FunctionPtrType* type); size_t jnc_FunctionTypeOverload_getOverloadCount(jnc_FunctionTypeOverload* typeOverload); jnc_FunctionType* jnc_FunctionTypeOverload_getOverload( jnc_FunctionTypeOverload* typeOverload, size_t index );