sdlStrtoll function
Parse a 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 a long long
, the result is
clamped to the minimum and maximum representable long long
values.
\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 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_strtoul \sa SDL_strtoull \sa SDL_strtod \sa SDL_lltoa
extern SDL_DECLSPEC long long SDLCALL SDL_strtoll(const char *str, char **endp, int base)
Implementation
Pointer<NativeType> sdlStrtoll(
String? str, Pointer<Pointer<Int8>> endp, int base) {
final sdlStrtollLookupFunction = 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_strtoll');
final strPointer = str != null ? str.toNativeUtf8() : nullptr;
final result = sdlStrtollLookupFunction(strPointer, endp, base);
calloc.free(strPointer);
return result;
}