Để xác định xem loại số nguyên có chiều rộng cố định được cung cấp hay không, bạn có thể kiểm tra xem một trong hai loại macro [U]INT*_MAXhoặc tương ứng [U]INT*_MINcó được xác định hay không.
// may be necessary for your C++ implementation
#define __STDC_LIMIT_MACROS 
#include <cstdint>
#ifdef INT32_MAX
// int32_t must be available to get here
int32_t some32bitIntVariable;
#endif
Trên 7,20 loại Số nguyên<stdint.h> , đoạn 4 của tiêu chuẩn C11 (lưu ý các phần được in đậm):
  Đối với mỗi loại được mô tả trong tài liệu này mà việc triển khai cung cấp, <stdint.h>sẽ khai báo typedeftên đó và xác định các macro liên quan . Ngược lại, đối với mỗi loại được mô tả ở đây mà việc triển khai không cung cấp, <stdint.h>sẽ không khai báo typedeftên đó cũng như không xác định các macro liên quan .
C ++ kế thừa việc thực hiện C thông qua <cstdint>. Xem <cstdint>vs<stdint.h> để biết một số chi tiết. Cũng xem những gì làm __STDC_LIMIT_MACROSvà __STDC_CONSTANT_MACROScó nghĩa là gì? để biết chi tiết về __STDC_LIMIT_MACROS.
Vì vậy, nếu int32_tcó sẵn, INT32_MAXvà INT32_MINphải là #define'd. Ngược lại, nếu int32_tkhông có sẵn, INT32_MAXcũng không INT32_MINđược phép trở thành #define'd.
Tuy nhiên, xin lưu ý, như @NicolBolas đã nêu trong một câu trả lời khác , có thể không cần thiết phải thực sự kiểm tra.
               
              
#if defined(INT8_MIN)