sdlStrtoull function
Parse an unsigned long long
from a string.
If str
starts with whitespace, then those whitespace characters are
skipped before attempting to parse the number.
If the parsed number does not fit inside an unsigned long long
, the
result is clamped to the maximum representable unsigned long long
value.
\param str The null-terminated string to read. Must not be NULL.
\param endp If not NULL, the address of the first invalid character (i.e.
the next character after the parsed number) will be written to
this pointer.
\param base The base of the integer to read. Supported values are 0 and 2
to 36 inclusive. If 0, the base will be inferred from the
number's prefix (0x for hexadecimal, 0 for octal, decimal
otherwise).
\returns The parsed unsigned long long
, or 0 if no number could be
parsed.
\threadsafety It is safe to call this function from any thread.
\since This function is available since SDL 3.1.3.
\sa SDL_atoi \sa SDL_atof \sa SDL_strtol \sa SDL_strtoll \sa SDL_strtoul \sa SDL_strtod \sa SDL_ulltoa
extern SDL_DECLSPEC unsigned long long SDLCALL SDL_strtoull(const char *str, char **endp, int base)
Implementation
Pointer<NativeType> sdlStrtoull(
String? str, Pointer<Pointer<Int8>> endp, int base) {
final sdlStrtoullLookupFunction = libSdl3.lookupFunction<
Pointer<NativeType> Function(
Pointer<Utf8> str, Pointer<Pointer<Int8>> endp, Int32 base),
Pointer<NativeType> Function(Pointer<Utf8> str,
Pointer<Pointer<Int8>> endp, int base)>('SDL_strtoull');
final strPointer = str != null ? str.toNativeUtf8() : nullptr;
final result = sdlStrtoullLookupFunction(strPointer, endp, base);
calloc.free(strPointer);
return result;
}