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_FunctionPtrTypeKind; enum jnc_FunctionTypeFlag; // structs struct jnc_FunctionType; // global functions const char* jnc_getFunctionTypeFlagString(jnc_FunctionTypeFlag flag); const char* jnc_getFunctionPtrTypeKindString(jnc_FunctionPtrTypeKind ptrTypeKind); 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, jnc_FunctionPtrTypeKind ptrTypeKind, uint_t flags ); jnc_FunctionType* jnc_FunctionType_getShortType(jnc_FunctionType* type); jnc_FunctionPtrTypeKind jnc_FunctionPtrType_getPtrTypeKind(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 );