ssize_t for Visual Studio
The POSIX C type
ssize_t
is available on Unix-like systems in <sys/types.h>
.
Windows Visual Studio
BaseTsd.h
has SSIZE_T.
However, ssize_t is POSIX, but not C standard. It’s possible to define a signed size type “ssize_t” using “ptrdiff_t” for “ssize_t” in C and C++. Using ptrdiff_t instead of ssize_t is the practice of major projects like Emacs.
size_t bit width is guaranteed by C and C++ standards to have bit width not less than 16.
ptrdiff_t bit width is guaranteed by C standard to have bit width not less than 16, and C++ standard to have bit width not less than 17.
This example shows how to use ssize_t across computing platforms.
Related: C++ size_type property vs size_t