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

C में sizeof() के अंदर लिखा कोड कभी निष्पादित नहीं होता


sizeof एक कंपाइल-टाइम ऑपरेटर है (अधिकांश मामलों में)। इसके ऑपरेंड का **मूल्यांकन नहीं किया जाता** - केवल इसका टाइप जांचा जाता है ताकि आकार निर्धारित हो सके।

उदाहरण

#include <stdio.h>

double my_function() {
    printf("This is a test function\n");
    return 123456789;
}

int main() {
    int x;
    
    x = sizeof(printf("Hello World"));  // printf निष्पादित नहीं होगा
    printf("The size: %d\n", x);
    
    x = sizeof(my_function());  // my_function निष्पादित नहीं होगा
    printf("The size: %d\n", x);
    
    return 0;
}

आउटपुट

The size: 4
The size: 8

व्याख्या

  • sizeof(printf("Hello World")): printf का रिटर्न टाइप int है (4 बाइट्स)। स्ट्रिंग प्रिंट नहीं होती।
  • sizeof(my_function()): रिटर्न टाइप double है (8 बाइट्स)। फंक्शन कॉल नहीं होता।

अपवाद: वेरिएबल लेंथ ऐरे (VLA) - C99

int n = 10;
sizeof(int[n++]);  // यहां n++ **निष्पादित होता है** क्योंकि VLA आकार रनटाइम पर निर्धारित होता है
printf("%d", n);   // 11 प्रिंट होगा

महत्वपूर्ण निष्कर्ष

  • sizeof अभिव्यक्ति के **साइड इफेक्ट्स** नहीं होते (VLA को छोड़कर)।
  • यह कंपाइल टाइम पर हल होता है (VLA के अलावा)।
  • sizeof variable (बिना पैरेंथेसिस) भी वैध है जब ऑपरेंड टाइप नाम न हो।
  1. - C/C++ में थ्रेड फंक्शन्स

    इस ट्यूटोरियल में, हम C/C++ में थ्रेड फंक्शन्स को समझने के लिए एक प्रोग्राम पर चर्चा करेंगे। थ्रेड फंक्शन्स यूजर्स को एक ही समय में समवर्ती फंक्शन्स को लागू करने की अनुमति देते हैं, जो निष्पादन के लिए एक-दूसरे पर निर्भर या स्वतंत्र हो सकते हैं। उदाहरण #include #include #include void* func(void* a

  1. - C में पिरामिड पैटर्न प्रिंट करने का प्रोग्राम

    प्रोग्राम विवरण एक पिरामिड एक बहुफलक है जो एक बहुभुज आधार और एक बिंदु, जिसे शीर्ष कहा जाता है, को जोड़कर बनता है। प्रत्येक आधार किनारा और शीर्ष एक त्रिभुज बनाते हैं, जिसे पार्श्व फलक कहा जाता है। यह बहुभुज आधार के साथ एक शंक्वाकार ठोस है। n-तरफा आधार वाले पिरामिड में n + 1 शीर्ष, n + 1 फलक और 2n कि

  1. C में नंबर पैटर्न प्रिंट करने का प्रोग्राम C में नंबर पैटर्न प्रिंट करने का प्रोग्राम

    प्रोग्राम विवरण एक न्यूमेरिकल पैटर्न संख्याओं का एक क्रम है जिसे एक नियम के आधार पर बनाया गया है जिसे पैटर्न नियम कहा जाता है। पैटर्न नियम क्रम में लगातार संख्याओं के बीच संबंध का वर्णन करने के लिए एक या अधिक गणितीय संक्रियाओं का उपयोग कर सकते हैं। पैटर्न 1 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 पैट