पूरा गाइड: C भाषा डेटा प्रकार र आकार | int,long,struct,sizeof

1. परिचय

सी भाषा एम्बेडेड सिस्टम र सिस्टम प्रोग्रामिङ जस्ता विभिन्न प्रयोजनहरूमा प्रयोग हुने प्रोग्रामिङ भाषा हो। त्यसमा, “डेटा प्रकार” र “साइज़” ले प्रोग्रामको मेमोरी प्रयोग र प्रदर्शनमा ठूलो प्रभाव पार्छ। विशेष गरी, विभिन्न वातावरण (32bit / 64bit, Windows / Linux आदि) मा प्रोग्राम चलाउँदा डेटा प्रकारको आकार परिवर्तन हुन सक्छ, त्यसैले सही प्रकार चयन गर्नु महत्त्वपूर्ण हुन्छ।

यस लेखमा, सी भाषा को आधारभूत डेटा प्रकारको आकार, वातावरण अनुसारको भिन्नता, र उपयुक्त प्रकार चयन गर्ने बुँदाहरूको व्याख्या गर्नेछौं। अतिरिक्त रूपमा, sizeof अपरेटरको प्रयोग विधि र स्थिर-चौडाइ पूर्णांक प्रकार (stdint.h) को उपयोग विधि जस्ता व्यावहारिक जानकारी पनि प्रस्तुत गर्नेछौं। यसले सी भाषा को प्रकार सम्बन्धी बुझाइलाई गहिरो बनाउनेछ र प्रभावकारी प्रोग्रामिङ गर्न सक्षम बनाउनेछ।

2. C भाषा को मूल डेटा प्रकार र आकार

2.1 इन्टिजर प्रकारको आकार सूची

डेटा प्रकार32bit वातावरण64bit वातावरणन्यूनतम आकार
char1 बाइट1 बाइट1 बाइट
short2 बाइट2 बाइट2 बाइट
int4 बाइट4 बाइट2 बाइट
long4 बाइट8 बाइट4 बाइट
long long8 बाइट8 बाइट8 बाइट

2.2 फ्लोटिङ पोइन्ट प्रकारको आकार सूची

डेटा प्रकार32bit वातावरण64bit वातावरण
float4 बाइट4 बाइट
double8 बाइट8 बाइट
long double8-16 बाइट16 बाइट
年収訴求

3. डेटा प्रकार आकारको वातावरण निर्भरता

3.1 OS र कम्पाइलर अनुसार आकारको भिन्नता

डेटा प्रकारWindows (LLP64)Linux (LP64)32bit वातावरण
int4 बाइट4 बाइट4 बाइट
long4 बाइट8 बाइट4 बाइट
long long8 बाइट8 बाइट8 बाइट

4. sizeof ऑपरेटरद्वारा डेटा प्रकारको आकार जाँच गर्नुहोस्

4.1 sizeof को मूलभूत

#include <stdio.h>

int main() {
    printf("Size of int: %zu bytesn", sizeof(int));
    printf("Size of double: %zu bytesn", sizeof(double));
    return 0;
}

5. स्थिर-चौडाइ पूर्णांक प्रकार(stdint.h को प्रयोग)

#include <stdio.h>
#include <stdint.h>

int main() {
    int8_t a = 100;
    uint16_t b = 50000;
    int32_t c = -123456;
    uint64_t d = 1000000000ULL;

    printf("Size of int8_t: %zu bytesn", sizeof(a));
    printf("Size of uint16_t: %zu bytesn", sizeof(b));
    printf("Size of int32_t: %zu bytesn", sizeof(c));
    printf("Size of uint64_t: %zu bytesn", sizeof(d));

    return 0;
}

6. संरचना को आकार र अलाइनमेंट

6.1 संरचना को मेमोरी लेआउट

#include <stdio.h>

struct example {
    char a;
    int b;
    double c;
};

int main() {
    printf("Size of struct: %zu bytesn", sizeof(struct example));
    return 0;
}

7. उपयुक्त डेटा प्रकारको चयन गर्ने तरिका

7.1 इन्टिजर प्रकारको चयन गर्ने तरिका

डेटा प्रकारआकारसीमा
int8_t1B-128 – 127
uint8_t1B0 – 255
int32_t4Bलगभग -2.1B – 2.1B
uint32_t4B0 – 4.2B

8. FAQ(बारम्बार सोधिने प्रश्नहरू)

Q1: sizeof को परिणाम unsigned int किन हुन्छ?

A:
C भाषामा, sizeof को रिटर्न मान size_t प्रकारको हो, जुन unsigned integer प्रकार हो। नकारात्मक आकार अस्तित्वमा नहुनुका कारण, यसलाई सुरक्षित प्रकारको रूपमा परिभाषित गरिएको छ।

size_t size = sizeof(int);
printf("Size of int: %zu bytesn", size);

9. सारांश

9.1 यस लेखको मुख्य बुँदाहरू

डेटा प्रकारको आकार वातावरणमा निर्भर हुन्छ
sizeof प्रयोग गरेर वास्तविक आकार जाँच गर्नुहोस्
स्थिर-चौडाइ पूर्णांक प्रकारलाई उपयोग गर्नुहोस्
संरचनाको आकार मेमोरी अलाइनमेंटद्वारा प्रभाव पाउँछ
उपयुक्त डेटा प्रकारको चयन गर्ने तरिका