تشير أنواع البيانات في c إلى نظام واسع يستخدم للإعلان عن المتغيرات أو الوظائف من أنواع مختلفة. يحدد نوع المتغير مقدار المساحة التي يشغلها في التخزين وكيف يتم تفسير نمط البت المخزن.
يمكن تصنيف الأنواع في C على النحو التالي -
الأب رقم. | أنواع ووصف |
---|---|
1 | أنواع أساسية إنها أنواع حسابية ويتم تصنيفها أيضًا إلى: (أ) أنواع الأعداد الصحيحة و (ب) أنواع الفاصلة العائمة. |
2 | الأنواع المعدودة إنها أنواع حسابية مرة أخرى ويتم استخدامها لتحديد المتغيرات التي يمكنها فقط تعيين قيم صحيحة معينة منفصلة في جميع أنحاء البرنامج. |
3 | اكتب باطل يشير فراغ محدد النوع إلى عدم توفر أي قيمة. |
4 | الأنواع المشتقة وهي تشمل (أ) أنواع المؤشرات ، (ب) أنواع الصفيف ، (ج) أنواع الهياكل ، (د) أنواع الاتحاد و (هـ) أنواع الوظائف. |
يتم الإشارة إلى أنواع المصفوفات وأنواع البنية بشكل جماعي على أنها أنواع التجميع. يحدد نوع الوظيفة نوع القيمة المرجعة للدالة. سنرى الأنواع الأساسية في القسم التالي ، حيث سيتم تغطية الأنواع الأخرى في الفصول القادمة.
أنواع عدد صحيح
يقدم الجدول التالي تفاصيل أنواع الأعداد الصحيحة القياسية مع أحجام التخزين ونطاقات القيمة -
Type | Storage size | Value range |
---|---|---|
char | 1 byte | -128 to 127 or 0 to 255 |
unsigned char | 1 byte | 0 to 255 |
signed char | 1 byte | -128 to 127 |
int | 2 or 4 bytes | -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647 |
unsigned int | 2 or 4 bytes | 0 to 65,535 or 0 to 4,294,967,295 |
short | 2 bytes | -32,768 to 32,767 |
unsigned short | 2 bytes | 0 to 65,535 |
long | 8 bytes or (4bytes for 32 bit OS) | -9223372036854775808 to 9223372036854775807 |
unsigned long | 8 bytes | 0 to 18446744073709551615 |
#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("CHAR_BIT : %d\n", CHAR_BIT); printf("CHAR_MAX : %d\n", CHAR_MAX); printf("CHAR_MIN : %d\n", CHAR_MIN); printf("INT_MAX : %d\n", INT_MAX); printf("INT_MIN : %d\n", INT_MIN); printf("LONG_MAX : %ld\n", (long) LONG_MAX); printf("LONG_MIN : %ld\n", (long) LONG_MIN); printf("SCHAR_MAX : %d\n", SCHAR_MAX); printf("SCHAR_MIN : %d\n", SCHAR_MIN); printf("SHRT_MAX : %d\n", SHRT_MAX); printf("SHRT_MIN : %d\n", SHRT_MIN); printf("UCHAR_MAX : %d\n", UCHAR_MAX); printf("UINT_MAX : %u\n", (unsigned int) UINT_MAX); printf("ULONG_MAX : %lu\n", (unsigned long) ULONG_MAX); printf("USHRT_MAX : %d\n", (unsigned short) USHRT_MAX); return 0; }
عندما تقوم بترجمة وتنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية على Linux -
CHAR_BIT : 8 CHAR_MAX : 127 CHAR_MIN : -128 INT_MAX : 2147483647 INT_MIN : -2147483648 LONG_MAX : 9223372036854775807 LONG_MIN : -9223372036854775808 SCHAR_MAX : 127 SCHAR_MIN : -128 SHRT_MAX : 32767 SHRT_MIN : -32768 UCHAR_MAX : 255 UINT_MAX : 4294967295 ULONG_MAX : 18446744073709551615 USHRT_MAX : 65535
أنواع النقطة العائمة
Type | Storage size | Value range | Precision |
---|---|---|---|
float | 4 byte | 1.2E-38 to 3.4E+38 | 6 decimal places |
double | 8 byte | 2.3E-308 to 1.7E+308 | 15 decimal places |
long double | 10 byte | 3.4E-4932 to 1.1E+4932 | 19 decimal places |
#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("Storage size for float : %d \n", sizeof(float)); printf("FLT_MAX : %g\n", (float) FLT_MAX); printf("FLT_MIN : %g\n", (float) FLT_MIN); printf("-FLT_MAX : %g\n", (float) -FLT_MAX); printf("-FLT_MIN : %g\n", (float) -FLT_MIN); printf("DBL_MAX : %g\n", (double) DBL_MAX); printf("DBL_MIN : %g\n", (double) DBL_MIN); printf("-DBL_MAX : %g\n", (double) -DBL_MAX); printf("Precision value: %d\n", FLT_DIG ); return 0; }
Storage size for float : 4 FLT_MAX : 3.40282e+38 FLT_MIN : 1.17549e-38 -FLT_MAX : -3.40282e+38 -FLT_MIN : -1.17549e-38 DBL_MAX : 1.79769e+308 DBL_MIN : 2.22507e-308 -DBL_MAX : -1.79769e+308 Precision value: 6
نوع الفراغ (void)
يحدد نوع الفراغ عدم توفر قيمة. يتم استخدامه في ثلاثة أنواع من المواقف -
الأب رقم. | أنواع ووصف |
---|---|
1 | ترجع الدالة على أنها باطلة هناك العديد من الوظائف في لغة C لا تُرجع أي قيمة أو يمكنك القول أنها ترجع باطلة. الوظيفة التي لا تحتوي على قيمة إرجاع لها نوع الإرجاع على أنها فارغة. على سبيل المثال ، خروج باطل (حالة int) ؛ |
2 | الحجج الدالة على أنها باطلة توجد وظائف مختلفة في لغة C لا تقبل أي متغير. يمكن للدالة التي لا تحتوي على معلمة قبول الفراغ. على سبيل المثال ، int rand (void) ؛ |
3 | مؤشرات للإبطال يمثل مؤشر type void * عنوان الكائن ، ولكن ليس نوعه. على سبيل المثال ، وظيفة تخصيص الذاكرة باطلة * malloc (size_t size) ؛ إرجاع مؤشر إلى الفراغ والذي يمكن تحويله إلى أي نوع بيانات. |
تعليقات
إرسال تعليق