একটি নির্দিষ্ট-প্রস্থের পূর্ণসংখ্যার প্রকার সরবরাহ করা হয়েছে কিনা তা নির্ধারণ করতে, আপনি সংশ্লিষ্ট [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)