একটি নির্দিষ্ট-প্রস্থের পূর্ণসংখ্যার প্রকার সরবরাহ করা হয়েছে কিনা তা নির্ধারণ করতে, আপনি সংশ্লিষ্ট [U]INT*_MAXবা [U]INT*_MINম্যাক্রোগগুলির মধ্যে কোনওটি সংজ্ঞায়িত কিনা তা পরীক্ষা করতে পারেন ।
// 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
প্রতি 7.20 পূর্ণসংখ্যার প্রকারভেদে<stdint.h> , সি 11 স্ট্যান্ডার্ডের অনুচ্ছেদ 4 (সাহসী অংশগুলি নোট করুন):
এখানে বর্ণিত প্রতিটি ধরণের জন্য যা বাস্তবায়ন সরবরাহ করে, <stdint.h>সেই typedefনামটি ঘোষণা করবে এবং সম্পর্কিত ম্যাক্রো সংজ্ঞায়িত করবে । বিপরীতে, এখানে বর্ণিত প্রতিটি ধরণের জন্য যা বাস্তবায়ন সরবরাহ করে না, <stdint.h>সেই typedefনামটি ঘোষণা করবে না এবং এটি সম্পর্কিত ম্যাক্রোগুলিকে সংজ্ঞায়িত করবে না ।
সি ++ এর মাধ্যমে সি প্রয়োগকরণ উত্তরাধিকার সূত্রে প্রাপ্ত <cstdint>। কিছু বিবরণ জন্য <cstdint>বনাম<stdint.h> দেখুন । আরো দেখুন কী করতে __STDC_LIMIT_MACROSএবং __STDC_CONSTANT_MACROSএর অর্থ কি? বিস্তারিত জানার জন্য __STDC_LIMIT_MACROS।
সুতরাং, যদি int32_tউপলব্ধ হয়, INT32_MAXএবং INT32_MINঅবশ্যই #define'ডি। বিপরীতে, যদি int32_tনা পাওয়া যায় তবে INT32_MAXনা 'd' হতেও INT32_MINঅনুমতি দেওয়া হয় না #define।
যদিও দ্রষ্টব্য, যেমন @ নিকোলবোলাস অন্য উত্তরে বলেছে , আসলে এটি যাচাই করা প্রয়োজন হতে পারে না।
#if defined(INT8_MIN)