Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में int में एकाधिक कैरेक्टर्स असाइन करना


C में मल्टी-कैरेक्टर कॉन्स्टेंट्स (जैसे 'AB', 'ABC') वैध हैं लेकिन इम्प्लीमेंटेशन-डिफाइंड व्यवहार दिखाते हैं। ये int टाइप के होते हैं।

उदाहरण

#include <stdio.h>

int main() {
    printf("'A'   = %d (0x%X)\n", 'A', 'A');
    printf("'AA'  = %d (0x%X)\n", 'AA', 'AA');
    printf("'ABC' = %d (0x%X)\n", 'ABC', 'ABC');
    printf("'ABCD' = %d (0x%X)\n", 'ABCD', 'ABCD');
    return 0;
}

आउटपुट (लिटिल-एंडियन x86 पर सामान्य)

'A'   = 65 (0x41)
'AA'  = 16705 (0x4141)
'ABC' = 4276803 (0x414243)
'ABCD' = 1094861636 (0x41424344)

व्याख्या

  • प्रत्येक कैरेक्टर एक बाइट ऑक्युपाई करता है।
  • लिटिल-एंडियन में, पहला कैरेक्टर लोएस्ट बाइट में जाता है।
  • 'AB' = 'A' | ('B' << 8) = 0x41 | (0x42 << 8) = 0x4241 = 16961 (बिग-एंडियन) या 16705 (लिटिल-एंडियन)।
  • आकार: sizeof('A') == sizeof(int) (C में), लेकिन C++ में sizeof('A') == sizeof(char)।

पोर्टेबिलिटी समस्या

  • मान **इम्प्लीमेंटेशन-डिफाइंड** है (एंडियननेस, int आकार पर निर्भर)।
  • पोर्टेबल कोड में **उपयोग न करें**।
  • इसके बजाय स्ट्रिंग लिटरल्स "AB" या एक्सप्लिसिट बिट ऑपरेशन्स उपयोग करें।

उपयोग के मामले (दुर्लभ)

  • फोर-कैरेक्टर कोड्स (FourCC) - मल्टीमीडिया फॉर्मेट्स में (जैसे 'RIFF', 'AVI ')।
  • कंपाइल-टाइम कैरेक्टर कॉम्बिनेशन तुलना (केवल ज्ञात आर्किटेक्चर पर)।
  1. C प्रोग्रामिंग भाषा में पॉइंटर्स के ऐरे को समझें C प्रोग्रामिंग भाषा में पॉइंटर्स के ऐरे को समझें

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल का पता स्टोर करता है। विशेषताएं पॉइंटर मेमोरी स्पेस बचाता है। सीधे मेमोरी लोकेशन एक्सेस के कारण पॉइंटर का एक्जीक्यूशन टाइम तेज होता है। पॉइंटर्स की मदद से, मेमोरी को कुशलता से एक्सेस किया जाता है, यानी मेमोरी को डायनामिकली एलोकेट और डीएलोकेट किया जाता है। पॉइ

  1. C भाषा में संरचना अवधारणा का उपयोग करके बिट फ़ील्ड की व्याख्या C भाषा में संरचना अवधारणा का उपयोग करके बिट फ़ील्ड की व्याख्या

    बिट फ़ील्ड का उपयोग वेरिएबल के आकार को बिट्स के संदर्भ में निर्दिष्ट करने के लिए किया जाता है। आमतौर पर, इसे एक संरचना के अंदर परिभाषित किया जाता है। बिट फ़ील्ड: 1 बाइट = 8 बिट्स उदाहरण के लिए, नीचे एक उदाहरण समझाया गया है: Struct info{ int x:2; }; यहां, x 2 बिट्स पर कब्जा करता है। बिट फ़ील

  1. C भाषा में यूनियन टू पॉइंटर (Union to Pointer) C भाषा में यूनियन टू पॉइंटर (Union to Pointer)

    यूनियन (Union) क्या है? यूनियन एक यूजर-डिफाइंड डेटा प्रकार है जो एक ही मेमोरी स्थान को विभिन्न डेटा प्रकारों के सदस्यों के लिए साझा करने की अनुमति देता है। किसी भी समय केवल एक सदस्य ही मान रख सकता है। यूनियन की घोषणा union यूनियन_नाम { डेटा_प्रकार सदस्य1; डेटा_प्रकार सदस्य2; // ... };