system/ctypes

Source   Edit  

Some type definitions for compatibility between different backends and platforms.

Types

BiggestFloat = float64
is an alias for the biggest floating point type the Nim compiler supports. Currently this is float64, but it is platform-dependent in general. Source   Edit  
BiggestInt = int64
is an alias for the biggest signed integer type the Nim compiler supports. Currently this is int64, but it is platform-dependent in general. Source   Edit  
BiggestUInt = uint64
is an alias for the biggest unsigned integer type the Nim compiler supports. Currently this is uint64, but it is platform-dependent in general. Source   Edit  
ByteAddress {....deprecated: "use `uint`".} = int
Deprecated: use `uint`
is the signed integer type that should be used for converting pointers to integer addresses for readability. Source   Edit  
cchar {.importc: "char", nodecl.} = char
This is the same as the type char in C. Source   Edit  
cdouble {.importc: "double", nodecl.} = float64
This is the same as the type double in C. Source   Edit  
cfloat {.importc: "float", nodecl.} = float32
This is the same as the type float in C. Source   Edit  
cint {.importc: "int", nodecl.} = int32
This is the same as the type int in C. Source   Edit  
clong {.importc: "long", nodecl.} = int32
This is the same as the type long in C. Source   Edit  
clongdouble {.importc: "long double", nodecl.} = BiggestFloat
This is the same as the type long double in C. This C type is not supported by Nim's code generator. Source   Edit  
clonglong {.importc: "long long", nodecl.} = int64
This is the same as the type long long in C. Source   Edit  
cschar {.importc: "signed char", nodecl.} = int8
This is the same as the type signed char in C. Source   Edit  
cshort {.importc: "short", nodecl.} = int16
This is the same as the type short in C. Source   Edit  
csize_t {.importc: "size_t", nodecl.} = uint
This is the same as the type size_t in C. Source   Edit  
cstringArray {.importc: "char**", nodecl.} = ptr UncheckedArray[cstring]
This is binary compatible to the type char** in C. The array's high value is large enough to disable bounds checking in practice. Use cstringArrayToSeq proc to convert it into a seq[string]. Source   Edit  
cuchar {.importc: "unsigned char", nodecl,
         ...deprecated: "use `char` or `uint8` instead".} = char
Deprecated: use `char` or `uint8` instead
Deprecated: Use uint8 instead. Source   Edit  
cuint {.importc: "unsigned int", nodecl.} = uint32
This is the same as the type unsigned int in C. Source   Edit  
culong {.importc: "unsigned long", nodecl.} = uint32
This is the same as the type unsigned long in C. Source   Edit  
culonglong {.importc: "unsigned long long", nodecl.} = uint64
This is the same as the type unsigned long long in C. Source   Edit  
cushort {.importc: "unsigned short", nodecl.} = uint16
This is the same as the type unsigned short in C. Source   Edit  
PFloat32 {....deprecated: "use `ptr float32`".} = ptr float32
Deprecated: use `ptr float32`
An alias for ptr float32. Source   Edit  
PFloat64 {....deprecated: "use `ptr float64`".} = ptr float64
Deprecated: use `ptr float64`
An alias for ptr float64. Source   Edit  
PInt32 {....deprecated: "use `ptr int32`".} = ptr int32
Deprecated: use `ptr int32`
An alias for ptr int32. Source   Edit  
PInt64 {....deprecated: "use `ptr int64`".} = ptr int64
Deprecated: use `ptr int64`
An alias for ptr int64. Source   Edit