ISO / IEC 9899: 2018 (C18) में, इसे 7.20.1.3 के तहत बताया गया है:
7.20.1.3 सबसे तेज न्यूनतम-चौड़ाई पूर्णांक प्रकार
1 निम्नलिखित प्रकारों में से प्रत्येक पूर्णांक प्रकारों के साथ काम करने के लिए पूर्णांक प्रकार को निर्दिष्ट करता है जो आमतौर पर सबसे तेज़ 268) होता है जिसमें कम से कम निर्दिष्ट चौड़ाई होती है।
2 टाइपसेफ नाम
int_fastN_t
कम से कम एन की चौड़ाई के साथ सबसे तेज हस्ताक्षरित पूर्णांक प्रकार को नामित करता है। टाइप किए गए नाम कम से कम एन कीuint_fastN_t
चौड़ाई के साथ सबसे तेज अहस्ताक्षरित पूर्णांक प्रकार को नामित करता है।3 निम्नलिखित प्रकार आवश्यक हैं:
int_fast8_t
,int_fast16_t
,int_fast32_t
,int_fast64_t
,uint_fast8_t
,uint_fast16_t
,uint_fast32_t
,uint_fast64_t
इस फॉर्म के अन्य सभी प्रकार वैकल्पिक हैं।
268) निर्दिष्ट प्रकार सभी उद्देश्यों के लिए सबसे तेज़ होने की गारंटी नहीं है; यदि कार्यान्वयन में दूसरे पर एक प्रकार चुनने के लिए कोई स्पष्ट आधार नहीं है, तो यह केवल हस्ताक्षर और चौड़ाई की आवश्यकताओं को पूरा करने वाले कुछ पूर्णांक प्रकार को ले जाएगा।
लेकिन यह नहीं बताया गया है कि ये "तेज़" पूर्णांक प्रकार अधिक तेज़ क्यों हैं।
- ये तेज पूर्णांक प्रकार अन्य पूर्णांक प्रकारों की तुलना में अधिक तेज़ क्यों हैं?
मैंने C ++ के साथ प्रश्न को टैग किया है, क्योंकि फास्ट पूर्णांक प्रकार C ++ 17 में हेडर फ़ाइल में भी उपलब्ध हैं cstdint
। दुर्भाग्य से, आईएसओ / आईईसी 14882: 2017 (सी ++ 17) में उनके स्पष्टीकरण के बारे में ऐसा कोई खंड नहीं है; मैंने उस अनुभाग को अन्यथा प्रश्न निकाय में लागू किया था।
जानकारी: C में, उन्हें हेडर फ़ाइल में घोषित किया गया है stdint.h
।
typedef
बयान हैं। इसलिए आमतौर पर , यह मानक पुस्तकालय स्तर पर किया जाता है। बेशक, सी मानक डालता कोई वास्तविक वे क्या करने पर प्रतिबंध typedef
तो उदाहरण के लिए एक विशिष्ट कार्यान्वयन सुनिश्चित करने के लिए है - करने के लिए int_fast32_t
एक typedef
के int
एक 32-बिट सिस्टम पर है, लेकिन एक काल्पनिक संकलक सकता है उदाहरण के लिए एक को लागू __int_fast
आंतरिक प्रकार और कुछ फैंसी करने के लिए वादा उस प्रकार के चर के लिए केस-बाय-केस के आधार पर सबसे तेज़ मशीन प्रकार लेने के लिए अनुकूलन, और फिर पुस्तकालय बस उसी के typedef
लिए हो सकता है।