C Language
संख्या, वर्ण और तार के लिए साहित्य
खोज…
टिप्पणियों
शब्द शाब्दिक रूप से एक सी कोड में वर्णों के अनुक्रम का वर्णन करने के लिए उपयोग किया जाता है जो एक संख्या (जैसे 0
) या एक स्ट्रिंग (जैसे "C"
) के रूप में एक निरंतर मूल्य को नामित करता है। कड़ाई से बोलते हुए, मानक पूर्णांक स्थिरांक, फ्लोटिंग स्थिरांक, अभिगम स्थिरांक और चरित्र स्थिरांक के लिए स्थिर शब्द का उपयोग करता है, स्ट्रिंग शाब्दिकों के लिए 'शाब्दिक' शब्द का उपयोग करता है, लेकिन यह सामान्य उपयोग नहीं है।
साहित्य में उपसर्ग या प्रत्यय हो सकते हैं (लेकिन दोनों नहीं) जो अतिरिक्त वर्ण हैं जो अपने डिफ़ॉल्ट प्रकार या उसके प्रतिनिधित्व को बदलने के लिए शाब्दिक रूप से शुरू या समाप्त कर सकते हैं।
पूर्णांक शाब्दिक
अभिन्न मान प्रदान करने के लिए इंटीग्रल शाब्दिक का उपयोग किया जाता है। तीन संख्यात्मक आधारों का समर्थन किया जाता है, जो उपसर्गों द्वारा इंगित किया जाता है:
आधार | उपसर्ग | उदाहरण |
---|---|---|
दशमलव | कोई नहीं | 5 |
अष्टभुजाकार | 0 | 0345 |
हेक्साडेसिमल | 0x या 0X | 0x12AB , 0X12AB , 0x12ab , 0x12Ab |
ध्यान दें कि इस लेखन में कोई संकेत शामिल नहीं है, इसलिए पूर्णांक शाब्दिक हमेशा सकारात्मक होते हैं। -1
जैसी चीज़ को एक पूर्णांक शाब्दिक के रूप में माना जाता है जिसमें एक पूर्णांक शाब्दिक ( 1
) है जिसे एक के साथ नकारा जाता है -
दशमलव पूर्णांक शाब्दिक का प्रकार पहला डेटा प्रकार है जो मूल्य को int
और long
से फिट कर सकता है। C99 के बाद से, long long
भी बहुत बड़े शाब्दिक के लिए समर्थन किया जाता है।
एक ऑक्टल या हेक्साडेसिमल पूर्णांक शाब्दिक प्रकार का पहला डेटा प्रकार है जो कि मान को int
, unsigned
, long
और unsigned long
से फिट कर सकता है। C99 के बाद से, long long
और unsigned long long
भी बहुत बड़े शाब्दिक के लिए समर्थित हैं।
विभिन्न प्रत्ययों का उपयोग करके, शाब्दिक के डिफ़ॉल्ट प्रकार को बदला जा सकता है।
प्रत्यय | व्याख्या |
---|---|
L , l | long int |
LL , ll (C99 से) | long long int |
U , u | unsigned |
यू और एल / एलएल प्रत्यय को किसी भी क्रम और मामले में जोड़ा जा सकता है। यह प्रत्ययों की नकल करने के लिए एक त्रुटि है (उदाहरण के लिए दो U
प्रत्यय) भले ही उनके पास अलग-अलग मामले हों।
स्ट्रिंग शाब्दिक
अक्षर की सरणियों को निर्दिष्ट करने के लिए स्ट्रिंग शाब्दिक का उपयोग किया जाता है। वे दोहरे उद्धरण चिह्नों (जैसे "abcd"
भीतर संलग्न वर्णों के अनुक्रम होते हैं और प्रकार char*
)।
L
उपसर्ग शाब्दिक एक विस्तृत वर्ण सरणी बनाता है, प्रकार का wchar_t*
। उदाहरण के लिए, L"abcd"
।
C11 के बाद से, L
समान अन्य एन्कोडिंग उपसर्ग हैं:
उपसर्ग | आधार प्रकार | एन्कोडिंग |
---|---|---|
कोई नहीं | char | मंच पर निर्भर |
L | wchar_t | मंच पर निर्भर |
u8 | char | UTF-8 |
u | char16_t | आमतौर पर UTF-16 |
U | char32_t | आमतौर पर UTF-32 |
बाद के दो के लिए, यह फीचर टेस्ट मैक्रोज़ के साथ क्वेर किया जा सकता है यदि एन्कोडिंग प्रभावी रूप से संबंधित UTF एन्कोडिंग है।
फ्लोटिंग पॉइंट लिटरल
फ़्लोटिंग पॉइंट शाब्दिक का उपयोग हस्ताक्षरित वास्तविक संख्याओं का प्रतिनिधित्व करने के लिए किया जाता है। निम्नलिखित प्रत्ययों का उपयोग शाब्दिक के प्रकार को निर्दिष्ट करने के लिए किया जा सकता है:
प्रत्यय | प्रकार | उदाहरण |
---|---|---|
कोई नहीं | double | 3.1415926 -3E6 |
f , F | float | 3.1415926f 2.1E-6F |
l , L | long double | 3.1415926L 1E126L |
इन प्रत्ययों का उपयोग करने के लिए, शाब्दिक एक अस्थायी बिंदु शाब्दिक होना चाहिए। उदाहरण के लिए, 3f
एक त्रुटि है, क्योंकि 3
पूर्णांक शाब्दिक है, जबकि 3.f
या 3.0f
सही है। long double
, सिफारिश हमेशा पठनीयता के लिए पूंजी L
उपयोग करने के लिए है।
चरित्र शाब्दिक
चरित्र शाब्दिक एक विशेष प्रकार के पूर्णांक शाब्दिक हैं जो एक वर्ण का प्रतिनिधित्व करने के लिए उपयोग किए जाते हैं। वे एकल उद्धरणों में संलग्न हैं, उदाहरण के लिए 'a'
और उनका प्रकार int
। शाब्दिक का मान मशीन के वर्ण सेट के अनुसार एक पूर्णांक मान है। वे प्रत्यय की अनुमति नहीं देते हैं।
एक वर्ण शाब्दिक से पहले L
उपसर्ग इसे wchar_t
का एक विस्तृत वर्ण बनाता है। इसी तरह चूंकि C11 u
और U
उपसर्ग क्रमशः इसे char16_t
और char32_t
विस्तृत वर्ण बनाते हैं।
जब कुछ विशेष वर्णों का प्रतिनिधित्व करने का इरादा होता है, जैसे कि एक चरित्र जो गैर-मुद्रण है, तो भागने के अनुक्रम का उपयोग किया जाता है। एस्केप सीक्वेंस पात्रों के एक क्रम का उपयोग करते हैं जो दूसरे वर्ण में अनुवादित होते हैं। सभी एस्केप सीक्वेंस में दो या दो से अधिक अक्षर होते हैं, जिनमें से पहला बैकस्लैश \
_ है। बैकलैश के तुरंत बाद के वर्ण इस बात का निर्धारण करते हैं कि अनुक्रम को किस वर्ण शाब्दिक रूप में व्याख्या किया गया है।
निकास का क्रम | चरित्र का प्रतिनिधित्व किया |
---|---|
\b | बैकस्पेस |
\f | भोजन की शैली |
\n | लाइन फ़ीड (नई लाइन) |
\r | कैरिज रिटर्न |
\t | क्षैतिज टैब |
\v | लंबवत टैब |
\\ | बैकस्लैश |
\' | एकल उद्धरण चिह्न |
\" | दोहरे उद्धरण चिह्न |
\? | प्रश्न चिन्ह |
\nnn | अष्ट मान |
\xnn ... | हेक्साडेसिमल मान |
निकास का क्रम | चरित्र का प्रतिनिधित्व किया |
---|---|
\a | चेतावनी (बीप, घंटी) |
निकास का क्रम | चरित्र का प्रतिनिधित्व किया |
---|---|
\unnnn | सार्वभौमिक चरित्र नाम |
\Unnnnnnnn | सार्वभौमिक चरित्र नाम |
एक सार्वभौमिक चरित्र नाम एक यूनिकोड कोड बिंदु है। एक सार्वभौमिक चरित्र नाम एक से अधिक वर्णों के लिए मैप कर सकता है। अंक n
की व्याख्या हेक्साडेसिमल अंकों के रूप में की जाती है। उपयोग में UTF एन्कोडिंग के आधार पर, एक सार्वभौमिक चरित्र नाम अनुक्रम एक कोड बिंदु में परिणाम हो सकता है जिसमें एक एकल सामान्य char
वर्ण के बजाय कई वर्ण होते हैं।
टेक्स्ट मोड I / O में लाइन फीड एस्केप सीक्वेंस का उपयोग करते समय, इसे OS- विशिष्ट न्यूलाइन बाइट या बाइट अनुक्रम में परिवर्तित किया जाता है।
ट्रिक्स से बचने के लिए प्रश्न चिह्न भागने क्रम का उपयोग किया जाता है। उदाहरण के लिए, ??/
बैकस्लैश कैरेक्टर '\'
प्रतिनिधित्व करने वाले ट्रिग्राफ के रूप में संकलित किया गया है, लेकिन उपयोग करने से ?\?/
_ ?\?/
स्ट्रिंग में परिणाम होगा "??/"
।
ऑक्टल वैल्यू एस्केप सीक्वेंस में एक, दो या तीन ऑक्टल अंक n
हो सकते हैं।