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

C++ स्टैंडर्ड के अनुसार int, long टाइप्स का साइज


C++ स्टैंडर्ड में int, long, long long के सटीक साइज निर्धारित नहीं हैं - केवल न्यूनतम रेंज दी गई है। वास्तविक साइज सिस्टम आर्किटेक्चर और ऑपरेटिंग सिस्टम पर निर्भर करता है।

डेटा मॉडल्स

मॉडलसिस्टमintlonglong longपॉइंटर
ILP3232-bit Linux/Windows32-bit32-bit64-bit32-bit
LP6464-bit Linux/macOS32-bit64-bit64-bit64-bit
LLP6464-bit Windows32-bit32-bit64-bit64-bit
ILP64कुछ 64-bit Unix64-bit64-bit64-bit64-bit

C++ स्टैंडर्ड गारंटीज (न्यूनतम)

टाइपन्यूनतम बिट्सन्यूनतम रेंज
signed char8-127 से +127
short / int16-32767 से +32767
long32-2147483647 से +2147483647
long long64-9223372036854775807 से +9223372036854775807

साइज चेक करने का कोड

#include <iostream>
#include <cstdint>
#include <climits>
using namespace std;

int main() {
    cout << "=== साइज (बाइट्स में) ===\n";
    cout << "bool: " << sizeof(bool) << endl;
    cout << "char: " << sizeof(char) << " (CHAR_BIT=" << CHAR_BIT << ")\n";
    cout << "short: " << sizeof(short) << endl;
    cout << "int: " << sizeof(int) << endl;
    cout << "long: " << sizeof(long) << endl;
    cout << "long long: " << sizeof(long long) << endl;
    cout << "float: " << sizeof(float) << endl;
    cout << "double: " << sizeof(double) << endl;
    cout << "long double: " << sizeof(long double) << endl;
    cout << "void*: " << sizeof(void*) << endl;
    cout << "size_t: " << sizeof(size_t) << endl;
    cout << "ptrdiff_t: " << sizeof(ptrdiff_t) << endl;
    
    cout << "\n=== बिट्स में ===\n";
    cout << "int: " << sizeof(int) * 8 << " bits\n";
    cout << "long: " << sizeof(long) * 8 << " bits\n";
    cout << "long long: " << sizeof(long long) * 8 << " bits\n";
    cout << "pointer: " << sizeof(void*) * 8 << " bits\n";
    
    cout << "\n=== फिक्स्ड-विड्थ टाइप्स (<cstdint>) ===\n";
    cout << "int8_t: " << sizeof(int8_t) << " bytes\n";
    cout << "int16_t: " << sizeof(int16_t) << " bytes\n";
    cout << "int32_t: " << sizeof(int32_t) << " bytes\n";
    cout << "int64_t: " << sizeof(int64_t) << " bytes\n";
    cout << "intptr_t: " << sizeof(intptr_t) << " bytes (पॉइंटर साइज)\n";
    
    cout << "\n=== रेंज मैक्रोज़ ===\n";
    cout << "INT_MIN: " << INT_MIN << "\n";
    cout << "INT_MAX: " << INT_MAX << "\n";
    cout << "LONG_MIN: " << LONG_MIN << "\n";
    cout << "LONG_MAX: " << LONG_MAX << "\n";
    cout << "LLONG_MIN: " << LLONG_MIN << "\n";
    cout << "LLONG_MAX: " << LLONG_MAX << "\n";
    
    return 0;
}

आउटपुट (64-bit Linux पर)

=== साइज (बाइट्स में) ===
bool: 1
char: 1 (CHAR_BIT=8)
short: 2
int: 4
long: 8
long long: 8
float: 4
double: 8
long double: 16
void*: 8
size_t: 8
ptrdiff_t: 8

=== बिट्स में ===
int: 32 bits
long: 64 bits
long long: 64 bits
pointer: 64 bits

=== फिक्स्ड-विड्थ टाइप्स ===
int8_t: 1 bytes
int16_t: 2 bytes
int32_t: 4 bytes
int64_t: 8 bytes
intptr_t: 8 bytes (पॉइंटर साइज)

=== रेंज मैक्रोज़ ===
INT_MIN: -2147483648
INT_MAX: 2147483647
LONG_MIN: -9223372036854775808
LONG_MAX: 9223372036854775807
LLONG_MIN: -9223372036854775808
LLONG_MAX: 9223372036854775807

आउटपुट (64-bit Windows पर)

int: 4 bytes (32 bits)
long: 4 bytes (32 bits)   ← Windows पर long 32-bit है!
long long: 8 bytes (64 bits)
pointer: 8 bytes (64 bits)

बेस्ट प्रैक्टिस

  • पोर्टेबल कोड के लिए <cstdint> से int32_t, int64_t, uint32_t आदि उपयोग करें
  • int को 32-bit मानकर न चलें - static_assert(sizeof(int) == 4) जोड़ें
  • पॉइंटर साइज के लिए intptr_t/uintptr_t उपयोग करें
  • कंपाइल-टाइम चेक: static_assert(sizeof(long) >= 8, "Need 64-bit long")
  1. - लिनक्स पर C++ के लिए सर्वश्रेष्ठ IDE कौन सा है?

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। लिनक्स पर C++ के लिए कोई एक सर्वश्रेष्ठ IDE नहीं है; आपको अपने टूल को

  1. - लिनक्स पर C++ के लिए शीर्ष IDE

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। यहां लिनक्स के लिए सर्वश्रेष्ठ C/C++ IDEs की सूची दी गई है। NetBeans

  1. - C++ में बूलियन के लिए टाइप स्पेसिफायर क्या है?

    C++ में बूलियन के लिए टाइप स्पेसिफायर bool है। आप इसका उपयोग इस प्रकार कर सकते हैं: bool myBoolean = true;