اذهب إلى المحتوى
  • 0

كيف يمكنني معرفة حجم كل النوع int أو أي نوع آخر في الذاكرة في ++C؟

Mohssen A Mohssen

السؤال

أريد أن أعرف المساحة التي يشغلها نوع معين (مثل int أو double) في الذاكرة، فعلى سبيل المثال: النوع int يستغل 4 bytes من الذاكرة.

كيف يمكنني أن أتأكد من هذا الرقم؟ وكيف يمكنني معرفة حجم باقي الأنواع في ++C؟

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

حجم كل نوع يعتمد على المصرف Compiler لديك، ويمكنك معرفة حجم كل نوع من خلال إستخدام المعامل sizeof حيث يعيد هذا المعامل حجم النوع الممر له بالبايت، كالتالي:

std::cout << "int: " << sizeof(int) << " bytes\n";	// int: 4 bytes

ويمكنك معرفة حجم أشهر الأنواع المستعملة في لغة ++C كالتالي:

#include <iostream>

int main()
{
    std::cout << "bool:\t\t"        << sizeof(bool)         << " bytes\n";
    std::cout << "char:\t\t"        << sizeof(char)         << " bytes\n";
    std::cout << "wchar_t:\t"       << sizeof(wchar_t)      << " bytes\n";
    std::cout << "char16_t:\t"      << sizeof(char16_t)     << " bytes\n";
    std::cout << "char32_t:\t"      << sizeof(char32_t)     << " bytes\n";
    std::cout << "short:\t\t"       << sizeof(short)        << " bytes\n";
    std::cout << "int:\t\t"         << sizeof(int)          << " bytes\n";
    std::cout << "long:\t\t"        << sizeof(long)         << " bytes\n";
    std::cout << "long long:\t"     << sizeof(long long)    << " bytes\n";
    std::cout << "float:\t\t"       << sizeof(float)        << " bytes\n";
    std::cout << "double:\t\t"      << sizeof(double)       << " bytes\n";
    std::cout << "long double:\t"   << sizeof(long double)  << " bytes\n";

    return 0;
}

وستكون النتيجة كالتالي:

bool:           1 bytes
char:           1 bytes
wchar_t:        2 bytes
char16_t:       2 bytes
char32_t:       4 bytes
short:          2 bytes
int:            4 bytes
long:           4 bytes
long long:      8 bytes
float:          4 bytes
double:         8 bytes
long double:    8 bytes

قد تجد أن الأرقام السابقة مختلفة لديك، حيث يقوم المصرّّف نفسه بتحديد حجم كل نوع، لذلك يختلف الأمر من مصرَّف لآخر.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...