C Language
कार्यान्वयन-परिभाषित व्यवहार
खोज…
टिप्पणियों
अवलोकन
C मानक भाषा सिंटैक्स, मानक लाइब्रेरी द्वारा प्रदान किए गए फ़ंक्शंस और अनुरूप C प्रोसेसर (मोटे तौर पर बोलना, संकलक) और अनुरूप C कार्यक्रमों के व्यवहार का वर्णन करता है। व्यवहार के संबंध में, अधिकांश भाग के लिए मानक कार्यक्रमों और प्रोसेसर के लिए विशेष व्यवहार को निर्दिष्ट करता है। दूसरी ओर, कुछ ऑपरेशनों में स्पष्ट या निहित अपरिभाषित व्यवहार होता है - ऐसे ऑपरेशनों से हमेशा बचा जाना चाहिए, क्योंकि आप उनके बारे में कुछ भी भरोसा नहीं कर सकते हैं। बीच में, कार्यान्वयन परिभाषित व्यवहार की एक किस्म है। ये व्यवहार C प्रोसेसर, रनटाइम और मानक लाइब्रेरी (सामूहिक रूप से, कार्यान्वयन ) के बीच भिन्न हो सकते हैं, लेकिन वे किसी भी कार्यान्वयन के लिए सुसंगत और विश्वसनीय हैं, और कार्यान्वयन कार्यान्वयन इन क्षेत्रों में से प्रत्येक में उनके व्यवहार को दस्तावेज़ित करता है।
यह कभी-कभी किसी प्रोग्राम के लिए कार्यान्वयन-परिभाषित व्यवहार पर भरोसा करने के लिए उचित है। उदाहरण के लिए, यदि प्रोग्राम किसी विशेष ऑपरेटिंग वातावरण के लिए वैसे भी विशिष्ट है, तो उस वातावरण के लिए सामान्य प्रोसेसर के लिए कार्यान्वयन-परिभाषित व्यवहार सामान्य पर निर्भर होना एक समस्या होने की संभावना नहीं है। वैकल्पिक रूप से, कोई उपयोग में परिभाषित कार्यान्वयन-परिभाषित व्यवहारों का चयन करने के लिए सशर्त संकलन निर्देशों का उपयोग कर सकता है। किसी भी मामले में, यह जानना आवश्यक है कि किन परिचालनों में क्रियान्वित परिभाषित व्यवहार होता है, इसलिए या तो उनसे बचने के लिए या उन्हें उपयोग करने के तरीके के बारे में सूचित निर्णय लेना है।
इन टिप्पणियों का संतुलन मानक के संदर्भ के साथ C2011 मानक में निर्दिष्ट सभी कार्यान्वयन-परिभाषित व्यवहारों और विशेषताओं की एक सूची का गठन करता है। उनमें से कई मानक की शब्दावली का उपयोग करते हैं । कुछ अन्य आम तौर पर मानक के संदर्भ पर अधिक भरोसा करते हैं, जैसे कि एक कार्यक्रम में स्रोत कोड का अनुवाद करने के आठ चरण, या होस्टेड और फ्रीस्टैंडिंग कार्यान्वयन के बीच का अंतर। कुछ जो विशेष रूप से आश्चर्यजनक या उल्लेखनीय हो सकते हैं, बोल्ड टाइपफेस में प्रस्तुत किए जाते हैं। वर्णित सभी व्यवहार पहले सी मानकों द्वारा समर्थित नहीं हैं, लेकिन आम तौर पर बोलते हुए, उनके पास मानक के सभी संस्करणों में कार्यान्वयन-परिभाषित व्यवहार होता है जो उनका समर्थन करते हैं।
कार्यक्रम और प्रोसेसर
सामान्य
एक बाइट में बिट्स की संख्या ( 3.6 / 3 )। कम से कम
8
, वास्तविक मूल्य को मैक्रोCHAR_BIT
जा सकता है।कौन से आउटपुट संदेशों को "नैदानिक संदेश" माना जाता है ( 3.10 / 1 )
स्रोत अनुवाद
जिस तरह से भौतिक स्रोत फ़ाइल मल्टीबाइट वर्ण स्रोत स्रोत सेट ( 5.1.1.2/1 ) के लिए मैप किया जाता है।
क्या गैर- न्यूलाइन व्हॉट्सएप के गैर-खाली अनुक्रमों को अनुवाद चरण 3 ( 5.1.1.2/1 ) के दौरान एकल रिक्त स्थान द्वारा प्रतिस्थापित किया जाता है
निष्पादन-निर्धारित चरित्र (एस) जिसमें चरित्र शाब्दिक और स्ट्रिंग स्थिरांक में वर्ण परिवर्तित होते हैं (अनुवाद चरण 5 के दौरान) जब अन्यथा कोई अनुरूप चरित्र नहीं होता है ( 5.1.1.2/1 )।
परिचालन के लिए अच्छा वातावरण
डायग्नोस्टिक संदेशों को उत्सर्जित करने के तरीके की पहचान की जाती है ( 5.1.1.3/1 )।
फ़ंक्शन का नाम और प्रकार एक फ्रीस्टैंडिंग कार्यान्वयन ( 5.1.2.1/1 ) में स्टार्टअप पर कहा जाता है।
एक न्यूनतम न्यूनतम सेट ( 5.1.2.1/1 ) से परे, फ्रीस्टैंडिंग कार्यान्वयन में कौन सी लाइब्रेरी सुविधाएं उपलब्ध हैं।
एक फ्रीस्टैंडिंग वातावरण में कार्यक्रम समाप्ति का प्रभाव ( 5.1.2.1/2 )।
एक होस्ट किए गए वातावरण में,
main()
अलावाint main(int argc, char *arg[])
औरint main(void)
( 5.1.2.2.1 / 1 ) के अलावाmain()
फ़ंक्शन के लिए किसी भी स्वीकृत हस्ताक्षर।जिस तरह से एक मेजबान कार्यान्वयन
main()
तर्कmain()
( 5.1.2.2.1 / 2 ) के लिए दूसरे तर्क द्वारा इंगित किए गए तार को परिभाषित करता है।अनुभाग 5.1.2.3 (प्रोग्राम एक्ज़ेक्यूशन ) और 7.21.3 (फ़ाइलें) ( 5.1.2.3/7 ) के उद्देश्य के लिए एक "इंटरेक्टिव डिवाइस" क्या है।
एक अनुकूलन कार्यान्वयन ( 5.1.2.3/10 ) में बाधा-हैंडलर दिनचर्या द्वारा संदर्भित वस्तुओं पर कोई प्रतिबंध।
एक फ्रीस्टैंडिंग कार्यान्वयन में, निष्पादन के कई थ्रेड समर्थित हैं ( 5.1.2.4/1 )।
निष्पादन वर्ण सेट के सदस्यों का मान ( 5.2.1 / 1 )।
परिभाषित वर्णमाला एस्केप सीक्वेंस ( 5.2.2 / 3 ) के अनुरूप
char
मूल्य।पूर्णांक और फ्लोटिंग-पॉइंट न्यूमेरिक सीमाएँ और विशेषताएँ ( 5.2.4.2/1 )।
फ्लोटिंग-पॉइंट अंकगणितीय संचालन की सटीकता और आंतरिक फ्लोटिंग पॉइंट अभ्यावेदन से स्ट्रिंग प्रतिनिधित्व ( 5.2.4.2.2 / 6 ) तक मानक पुस्तकालय के रूपांतरण।
मैक्रो
FLT_ROUNDS
का मान, जो डिफ़ॉल्ट फ़्लोटिंग-पॉइंट राउंडिंग मोड ( 5.2.4.2.2 / 8 ) को एन्कोड करता है ।गोलाई व्यवहार
FLT_ROUNDS
समर्थित मूल्यों से अधिक 3 या उससे कम -1 ( 5.2.4.2.2 / 8 ) से अधिक है।स्थूल
FLT_EVAL_METHOD
का मान, जो फ्लोटिंग-पॉइंट मूल्यांकन व्यवहार की विशेषता है ( 5.2.4.2.2 / 9 )।FLT_EVAL_METHOD
-1 ( 5.2.4.2.2 / 9 ) से कम के किसी भी समर्थित मूल्यों कीFLT_EVAL_METHOD
।मैक्रोज़
FLT_HAS_SUBNORM
,DBL_HAS_SUBNORM
औरLDBL_HAS_SUBNORM
मान, यहDBL_HAS_SUBNORM
कि मानक फ़्लोटिंग-पॉइंट प्रारूप सब- नॉर्मल नंबरों का समर्थन करते हैं ( 5.2.4.2.2 / 10 )
प्रकार
(अप्रत्यक्ष रूप से) किसी वस्तु को धागे से भंडारण अवधि तक पहुंचाने के प्रयास का परिणाम एक अन्य वस्तु से भिन्न होता है, जिसके साथ ऑब्जेक्ट जुड़ा होता है ( 6.2.4 / 4 )
एक
char
का मान जिसके लिए मूल निष्पादन सेट के बाहर एक चरित्र सौंपा गया है ( 6.2.5 / 3 )।समर्थित विस्तारित हस्ताक्षरित पूर्णांक प्रकार, यदि कोई हो, ( ६.२.५ / ४ ), और उन्हें पहचानने के लिए उपयोग किए गए कोई भी एक्सटेंशन कीवर्ड।
क्या
char
पासsigned char
रूप में एक ही प्रतिनिधित्व और व्यवहार है याunsigned char
( 6.2.5 / 15 ) के रूप में। साथ पूछे जा सकता हैCHAR_MIN
, जो या तो0
याSCHAR_MIN
यदिchar
अहस्ताक्षरित या हस्ताक्षर किए, क्रमशः है।ऑब्जेक्ट्स के अभ्यावेदन में बाइट्स की संख्या, क्रम और एन्कोडिंग , जहां मानक ( 6.2.6.1/2 ) द्वारा स्पष्ट रूप से निर्दिष्ट किया गया है।
पूर्णांक प्रतिनिधित्व के तीन मान्यता प्राप्त रूपों में से कोई भी किसी भी स्थिति में लागू होता है, और पूर्णांक वस्तुओं के कुछ निश्चित पैटर्न ट्रैप अभ्यावेदन ( 6.2.6.2/2 ) हैं।
प्रत्येक प्रकार की संरेखण आवश्यकता ( 6.2.8 / 1 )।
क्या और किन संदर्भों में कोई विस्तारित संरेखण समर्थित हैं ( 6.2.8 / 3 )।
समर्थित विस्तारित संरेखण का सेट ( 6.2.8 / 4 )।
किसी भी विस्तारित हस्ताक्षरित पूर्णांक प्रकार के एक दूसरे के सापेक्ष पूर्णांक रूपांतरण रैंक ( 6.3.1.1/1 )।
एक हस्ताक्षरित पूर्णांक के लिए एक आउट-ऑफ-रेंज मान असाइन करने का प्रभाव ( 6.3.1.3/3 )।
जब एक इन-रेंज लेकिन अप्राप्य मूल्य को एक फ्लोटिंग-पॉइंट ऑब्जेक्ट को सौंपा जाता है, तो ऑब्जेक्ट में संग्रहीत प्रतिनिधित्व योग्य मूल्य को दो निकटतम प्रतिनिधित्व योग्य मूल्यों ( 6.3.1.4/2 ; 6.3.1.5/1 ; 6.4.4) के बीच से कैसे चुना जाता है; / ३ )।
मान
0
( 6.3.2.3/5 ) के साथ पूर्णांक स्थिर अभिव्यक्तियों को छोड़कर किसी पूर्णांक को सूचक प्रकार में बदलने का परिणाम ।
स्रोत प्रपत्र
#pragma
निर्देशों के भीतर के स्थान जहाँ हेडर नाम टोकन पहचाने जाते हैं ( 6.4 / 4 )।मल्टीबाइट अक्षर, अंडरस्कोर के अलावा अन्य वर्ण, अस्वीकार्य लैटिन अक्षर, सार्वभौमिक चरित्र नाम और दशमलव अंक, जो पहचानकर्ताओं में दिखाई दे सकते हैं ( 6.4.2.1/1 )।
एक पहचानकर्ता में महत्वपूर्ण वर्णों की संख्या ( 6.4.2.1/5 )।
कुछ अपवादों के साथ, जिस तरह से पूर्णांक वर्ण में स्रोत वर्णों को निष्पादन-सेट वर्णों के लिए मैप किया जाता है ( 6.4.4.4/2 ; 6.4.4.4/10 )।
वर्तमान लोकेल का उपयोग एक विस्तृत चरित्र स्थिरांक के मान की गणना के लिए किया जाता है, और ऐसे कई स्थिरांक ( 6.4.4.4% ) के लिए रूपांतरण के सबसे अन्य पहलुओं।
चाहे अलग-अलग उपसर्ग वाले विस्तृत स्ट्रिंग शाब्दिक टोकन को समतल किया जा सकता है और, यदि हां, तो परिणामी मल्टीबाइट चरित्र अनुक्रम का उपचार ( 6.4.5 / 5 )
अनुवाद चरण 7 के दौरान उपयोग किए जाने वाले लोकेल को वाइड स्ट्रिंग स्ट्रिंगल को मल्टीबाइट कैरेक्टर सिक्वेंस में बदलने के लिए, और जब परिणाम निष्पादन वर्ण सेट ( 6.4.5 / 6 ) में प्रतिनिधित्व योग्य नहीं होता है, तो उनका मूल्य।
हेडर नामों को जिस तरह से नाम दर्ज करने के लिए मैप किया जाता है ( 6.4.7 / 2 )।
मूल्यांकन
जब
FP_CONTRACT
( 6.5 / 8 ) का उपयोग नहीं किया जाता है तो क्या और कैसे फ़्लोटिंग-पॉइंट एक्सप्रेशन कॉन्ट्रैक्ट किए जाते हैं।के परिणामों के मूल्यों
sizeof
और_Alignof
ऑपरेटरों ( 6.5.3.4/5 )।सूचक प्रकार ( 6.5.6 / 9 ) के परिणाम प्रकार का आकार।
नकारात्मक मान ( 6.5.7 / 5 ) के साथ हस्ताक्षरित पूर्णांक को दाएं-शिफ्ट करने का परिणाम ।
शील व्यवहार
हद यह है कि
register
कीवर्ड प्रभावी है ( 6.7.1 / 6 )।क्या किसी बिटफील्ड के प्रकार को
int
रूप में घोषित किया गया है जोunsigned int
के समान है याsigned int
( 6.7.2 / 5 ) के रूप में है।वैकल्पिक रूप से योग्य
_Bool
,signed int
, औरunsigned int
अलावा अन्य प्रकार के बिटफ़िल्ड क्या कर सकते हैं; क्या बिटफिल्ड में परमाणु प्रकार ( 6.7.2.1/5 ) हो सकते हैं।बिटकॉइंस के लिए कार्यान्वयन कैसे लागू होता है इसके पहलू ( 6.7.2.1/11 )।
संरचनाओं और यूनियनों के गैर-बिटफील्ड सदस्यों के संरेखण ( 6.7.2.1/14 )।
प्रत्येक संलग्न प्रकार ( 6.7.2.2/4 ) के लिए अंतर्निहित प्रकार।
volatile
-क्वालिफाइड प्रकार ( 6.7.3 / 7 ) के ऑब्जेक्ट के लिए "एक्सेस" का गठन क्या होता है।inline
फ़ंक्शन घोषणाओं की प्रभावशीलता ( 6.7.4 / 6 )।
प्रीप्रोसेसर
क्या चरित्र स्थिरांक पूर्णांक मानों में उसी तरह से पूर्णांक मानों में परिवर्तित हो जाते हैं, जैसे सामान्य अभिव्यक्तियों में, और क्या एकल-वर्ण स्थिरांक का नकारात्मक मान हो सकता है ( 6.10.1 / 4 )।
एक
#include
निर्देश में निर्दिष्ट फ़ाइलों के लिए खोजे गए स्थान ( 6.10.2 / 2-3 )।जिस तरह से एक हेडर नाम एक बहु-टोकन
#include
निर्देश ( 6.10.2 / 4 ) के टोकन से बनता है।के लिए सीमा
#include
घोंसले ( 6.10.2 / 6 )।एक चाहे
\
चरित्र से पहले डाला जाता है\
पूर्वप्रक्रमक के के परिणाम में एक सार्वभौमिक चरित्र का नाम शुरू#
ऑपरेटर ( 6.10.3.2/2 )।STDC
( 6.10.6 / 1 ) के अलावाSTDC
लिए#pragma
प्रागमा प्रीप्रोसेसिंग निर्देश का व्यवहार।__DATE__
और__TIME__
मैक्रोज़ का मूल्य यदि कोई अनुवाद तिथि या समय, क्रमशः उपलब्ध नहीं है ( 6.10.8.1/1 )।आंतरिक चरित्र एन्कोडिंग
wchar_t
लिए उपयोग किया जाता है यदि मैक्रो__STDC_ISO_10646__
परिभाषित नहीं किया गया है ( 6.10.8.2/1 )।आंतरिक वर्ण एन्कोडिंग
char32_t
लिए उपयोग किया जाता है यदि मैक्रो__STDC_UTF_32__
परिभाषित नहीं किया गया है ( 6.10.8.21 )।
मानक पुस्तकालय
सामान्य
- जब संदेश विफल हो जाते हैं तो संदेशों का प्रारूप विफल हो जाता है ( 7.2.1.1/2 )।
फ़्लोटिंग-पॉइंट पर्यावरण फ़ंक्शंस
मानक ( 7.6 / 6 ) द्वारा परिभाषित उन परे कोई भी अतिरिक्त फ्लोटिंग-पॉइंट अपवाद।
मानक द्वारा परिभाषित ( 7.6 / 8 ) से परे कोई भी अतिरिक्त फ्लोटिंग-पॉइंट राउंडिंग मोड।
मानक ( 7.6 / 10 ) द्वारा परिभाषित उन परे किसी भी अतिरिक्त फ्लोटिंग-पॉइंट वातावरण।
फ़्लोटिंग-पॉइंट एन्वायरमेंट एक्सेस स्विच ( 7.6.1 / 2 ) का डिफ़ॉल्ट मान।
फ्लोटिंग-पॉइंट स्टेटस फ्लैग का प्रतिनिधित्व
fegetexceptflag()
( 7.6.2.2/1 ) द्वारा किया गया।जब भी यह "ओवरफ्लो" या "अंडरफ़्लो" फ़्लोटिंग-पॉइंट अपवाद ( 7.6.2.3/2 ) को
feraiseexcept()
, तोferaiseexcept()
फ़ंक्शनferaiseexcept()
अतिरिक्त "feraiseexcept()
" फ़्लोटिंग-पॉइंट अपवाद को उठाता है।
स्थान-संबंधी कार्य
- सेटेलोकेल
setlocale()
( 7.11.1.1/3 ) द्वारा समर्थित"C"
अलावा अन्य स्थानीय तार।
गणित के कार्य
जब
FLT_EVAL_METHOD
मैक्रो का मान0
,1
, और2
( 7.12 / 2 ) से भिन्न होता है, तोfloat_t
औरdouble_t
द्वाराfloat_t
गए प्रकार।मानक ( 7.12 / 6 ) द्वारा परिभाषित लोगों से परे कोई समर्थित फ्लोटिंग-पॉइंट वर्गीकरण।
एक डोमेन त्रुटि ( 7.12.1 / 2 ) की स्थिति में
math.h
फ़ंक्शन द्वारा दिया गया मान।ध्रुव त्रुटि ( 7.12.1 / 3 ) की स्थिति में
math.h
फ़ंक्शन द्वारा दिया गया मान।मूल्य द्वारा दिया
math.h
क्रिया का परिणाम underflows, और चाहे के पहलुओंerrno
पर सेट हैERANGE
और क्या एक फ्लोटिंग प्वाइंट अपवाद उन परिस्थितियों (के तहत उठाया है 7.12.1 / 6 )।एफपी-संकुचन स्विच ( 7.12.2 / 2 ) का डिफ़ॉल्ट मूल्य।
क्या
fmod()
फ़ंक्शन 0 पर वापस आते हैं या एक डोमेन त्रुटि उठाते हैं जब उनका दूसरा तर्क 0 ( 7.12.10.1/3 ) होता है।जब उनका दूसरा तर्क 0 ( 7.12.10.2/3 ) हो तो
remainder()
फ़ंक्शन 0 पर वापस आते हैं या एक डोमेन त्रुटि बढ़ाते हैं ।remquo()
फ़ंक्शन ( 7.12.10.3/2 ) द्वारा गणना किए गएremquo()
में महत्वपूर्ण बिट्स की संख्या।जब उनके दूसरे तर्क 0 ( 7.12.10.3/3 ) हैं, तो क्या
remquo()
फ़ंक्शन 0 पर वापस आते हैं या एक डोमेन त्रुटि बढ़ाते हैं ।
सिग्नल
समर्थित संकेतों का पूरा सेट, उनके शब्दार्थ और उनकी डिफ़ॉल्ट हैंडलिंग ( 7.14 / 4 )।
जब कोई सिग्नल उठाया जाता है और उस सिग्नल से जुड़ा एक कस्टम हैंडलर होता है, जो सिग्नल, यदि कोई हो, हैंडलर के निष्पादन की अवधि के लिए अवरुद्ध हो जाता है ( 7.14.1.1/3 )।
SIGFPE
,SIGILL
, औरSIGSEGV
अलावा अन्य कौन से संकेत एक कस्टम सिग्नल हैंडलर से अपरिभाषित होने पर लौटने का कारण बनते हैं ( 7.14.1.1/3 )।कौन से संकेतों को शुरू में अनदेखा करने के लिए कॉन्फ़िगर किया गया है (उनकी डिफ़ॉल्ट हैंडलिंग की परवाह किए बिना; 7.14.1.1/6 )।
विविध
- विशिष्ट नल पॉइंटर जो स्थूल
NULL
विस्तार ( 7.19 / 3 ) के लिए स्थिर है।
फ़ाइल-हैंडलिंग कार्य
क्या किसी पाठ धारा की अंतिम पंक्ति के लिए एक नई रूपरेखा ( 7.21.2 / 2 ) की आवश्यकता होती है।
शून्य वर्णों की संख्या स्वचालित रूप से एक बाइनरी स्ट्रीम ( 7.21.2 / 3 ) से जुड़ी हुई है ।
फ़ाइल की प्रारंभिक स्थिति एपेंड मोड में खोली गई ( 7.21.3 / 1 )।
क्या किसी पाठ धारा पर लिखने से धारा प्रवाहित हो जाती है ( 7.21.3 / 2 )।
स्ट्रीम बफरिंग के लिए समर्थन ( 7.21.3 / 3 )।
क्या शून्य-लंबाई वाली फाइलें वास्तव में मौजूद हैं ( 7.21.3 / 4 )।
मान्य फ़ाइल नाम ( 7.21.3 / 8 ) की रचना के लिए नियम।
क्या एक ही फाइल एक साथ कई बार ( 7.21.3 / 8 ) खुल सकती है।
मल्टीबैट पात्रों के लिए एन्कोडिंग की प्रकृति और विकल्प ( 7.21.3 / 10 )।
लक्ष्य फ़ाइल खुली होने पर निष्कासन
remove()
फ़ंक्शन का व्यवहार ( 7.21.4.1/2 )।जब लक्ष्य फ़ाइल पहले से मौजूद है (तो behavior.२१.४.२/२ ) फ़ंक्शन का
rename()
।क्या
tmpfile()
फ़ंक्शन के माध्यम से बनाई गई फाइलें उस घटना में हटा दी जाती हैं जो प्रोग्राम असामान्य रूप से समाप्त होता है ( 7.21.4.32/2 )।किस मोड में परिवर्तन होता है जिसके तहत
freopen()
( 7.21.5.4/3 ) के माध्यम से परिस्थितियों की अनुमति है।
मैं / हे कार्यों
प्रिंटफ () - पारिवारिक कार्यों ( 7.21.6.1/8 ) द्वारा अनंत और न-एक-संख्या एफपी मूल्यों के अनुमत प्रतिनिधित्वों में से कौन सा उत्पादन किया जाता है।
जिस तरह से संकेत द्वारा स्वरूपित हैं
printf()
-family कार्य ( 7.21.6.1/8 )।स्कैनफ का व्यवहार
scanf()
-family फ़ंक्शंस जब-
चरित्र एक[
फ़ील्ड ( 7.21.6.2/12 ) के स्कैनलिस्ट की आंतरिक स्थिति में प्रकट होता है।के अधिकांश पहलुओं
scanf()
की -family कार्यों 'सौंपनेp
क्षेत्रों ( 7.21.6.2/12 )।errno
मूल्य द्वारा निर्धारितfgetpos()
की विफलता (पर 7.21.9.1/2 )।errno
मूल्य द्वारा निर्धारितfsetpos()
की विफलता (पर 7.21.9.3/2 )।errno
मूल्य सेट द्वाराftell()
विफलता पर ( 7.21.9.4/3 )।NaN स्वरूपण ( 7.22.1.3p4 ) के कुछ समर्थित पहलुओं के
strtod()
कार्यों का अर्थ।चाहे
strtod()
-family सेट कार्योंerrno
कोERANGE
जब परिणाम underflows ( 7.22.1.3/10 )।
स्मृति आवंटन कार्य
- स्मृति-आवंटन कार्यों का व्यवहार जब अनुरोधित बाइट्स की संख्या 0 ( 7.22.3 / 1 ) है।
सिस्टम पर्यावरण कार्य करता है
क्या अगर क्लीनअप, यदि कोई हो, किया जाता है और क्या स्थिति को होस्ट ओएस में वापस कर दिया जाता है जब
abort()
फ़ंक्शन कहा जाता है ( 7.22.4.1/2 )।exit()
( 7.22.4.4/5 ) कहा जाता है कि मेजबान वातावरण में क्या स्थिति वापस आ गई है।खुली धाराओं की हैंडलिंग और मेजबान स्थिति में क्या स्थिति वापस
_Exit()
है जब_Exit()
( 7.22.4.5/2 ) कहा जाता है।getenv()
और पर्यावरण को बदलने के लिए विधि ( 7.22.4.6/2 ) के माध्यम से सुलभ पर्यावरण के नाम का सेट।system()
का रिटर्न मानsystem()
फ़ंक्शन ( 7.22.4.8/3 )।
दिनांक और समय कार्य
स्थानीय समय क्षेत्र और डेलाइट सेविंग टाइम ( 7.27.1 / 1 )।
प्रकार की श्रेणी और समय
clock_t
की शुद्धता और सटीकता,clock_t
प्रकार औरtime_t
( 7.27.1 / 4 ) के माध्यम से।युग की शुरुआत जो
clock()
द्वारा लौटाई गई अवधिclock()
फ़ंक्शन ( 7.27.2.1/3 ) के संदर्भ के रूप में कार्य करती है।युग की शुरुआत जो
TIME_UTC
timespec_get()
फ़ंक्शन द्वारा लौटाए गए समय के संदर्भ के रूप में कार्य करती है (जब समय आधारTIME_UTC
; 7.27.2.5/3 )।"सी" लोकेल ( 7.27.3.5/7 ) में
%Z
रूपांतरण विनिर्देशक के लिए स्ट्रैफ़टाइमstrftime()
प्रतिस्थापन।
वाइड-चरित्र I / O फ़ंक्शन
अनंत और न-एक-संख्या एफपी मूल्यों के अनुमत प्रतिनिधित्वों में से कौन सा
wprintf()
-family फ़ंक्शन ( 7.29.2.1/8 ) द्वारा उत्पादित किया जाता है।जिस तरह से संकेत
wprintf()
-family फ़ंक्शन ( 7.29.2.1/8 ) द्वारा स्वरूपित किए जाते हैं।wscanf()
का व्यवहार जब-
चरित्र एक[
फ़ील्ड ( 7.29.2.2/12 ) के स्कैनलिस्ट की आंतरिक स्थिति में प्रकट होता है।wscanf()
अधिकांश पहलूwscanf()
फ़ंक्शंस 'p
फ़ील्ड्स सौंपने ( 7.29.2.2/12 )।NaN स्वरूपण ( 7.29.4.1.1 / 4 ) के कुछ समर्थित पहलुओं के
wstrtod()
कार्यों का अर्थ।चाहे
wstrtod()
-family सेट कार्योंerrno
कोERANGE
जब परिणाम underflows ( 7.29.4.1.1 / 10 )।
एक नकारात्मक पूर्णांक की सही पारी
int signed_integer = -1;
// The right shift operation exhibits implementation-defined behavior:
int result = signed_integer >> 1;
किसी पूर्णांक के लिए एक आउट-ऑफ-रेंज मान निर्दिष्ट करना
// Supposing SCHAR_MAX, the maximum value that can be represented by a signed char, is
// 127, the behavior of this assignment is implementation-defined:
signed char integer;
integer = 128;
शून्य बाइट्स आवंटित करना
// The allocation functions have implementation-defined behavior when the requested size
// of the allocation is zero.
void *p = malloc(0);
हस्ताक्षरित पूर्णांक का प्रतिनिधित्व
प्रत्येक हस्ताक्षरित पूर्णांक प्रकार को तीन प्रारूपों में से किसी एक में दर्शाया जा सकता है; यह कार्यान्वयन-परिभाषित है जिसका उपयोग किया जाता है। कम से कम विस्तृत रूप में के रूप में किसी भी हस्ताक्षर किए पूर्णांक प्रकार के लिए उपयोग में कार्यान्वयन int
मूल्य के प्रतिनिधित्व के दो सबसे कम क्रम बिट्स से रनटाइम पर निर्धारित किया जा सकता -1
है कि प्रकार में, जैसे इतना:
enum { sign_magnitude = 1, ones_compl = 2, twos_compl = 3, };
#define SIGN_REP(T) ((T)-1 & (T)3)
switch (SIGN_REP(long)) {
case sign_magnitude: { /* do something */ break; }
case ones_compl: { /* do otherwise */ break; }
case twos_compl: { /* do yet else */ break; }
case 0: { _Static_assert(SIGN_REP(long), "bogus sign representation"); }
}
समान पैटर्न संकीर्ण प्रकारों के प्रतिनिधित्व पर लागू होता है, लेकिन उन्हें इस तकनीक द्वारा परीक्षण नहीं किया जा सकता है, क्योंकि &
के ऑपरेंड्स परिणाम की गणना से पहले "सामान्य अंकगणितीय रूपांतरण" के अधीन हैं।