البرمجة

تحقيق الاتساق في الحجم باستخدام مؤشرات الـVoid في لغة البرمجة C

في البرمجة، يمكن تحقيق هدفك من خلال استخدام مفهوم يسمى “الاتساق في الحجم” (Size Uniformity). يمكنك تحقيق هذا الأمر باستخدام ميزة في لغة البرمجة تُعرف باسم الاتساق في الحجم، حيث يتم تحديد حجم المؤشر بغض النظر عن نوع البيانات التي يشير إليها.

في لغة البرمجة C، يمكنك استخدام ميزة void لتحقيق ذلك. يُعتبر المؤشر void نوعًا خاصًا من المؤشرات يمكنه أن يشير إلى أي نوع بيانات. هذا يعني أنك يمكنك استخدام مؤشرات void للإشارة إلى مواقع في الذاكرة تحتوي على بيانات من أي نوع.

في الكود الذي قدمته، يمكنك تعديل الأمور بالشكل التالي:

c
#include int main() { void *pvoid; char *pchar; short *pshort; int *pint; long *plong; float *pfloat; double *pdouble; pvoid = pchar = pshort = pint = plong = pfloat = pdouble; printf("sizeof *pvoid is = %u\n", sizeof(pvoid)); printf("sizeof *pchar is = %u\n", sizeof(pchar)); printf("sizeof *pshort is = %u\n", sizeof(pshort)); printf("sizeof *pint is = %u\n", sizeof(pint)); printf("sizeof *plong is = %u\n", sizeof(plong)); printf("sizeof *pfloat is = %u\n", sizeof(pfloat)); printf("sizeof *pdouble is = %u\n", sizeof(pdouble)); return 0; }

بهذا التعديل، يشير المؤشر pvoid إلى أي نوع بيانات، وفي الوقت نفسه يتم تحديد أحجام باقي المؤشرات بناءً على نوع البيانات التي يشير إليها المؤشر pvoid، مما يؤدي إلى أن يكون لديك مؤشرات تشير إلى أنواع بيانات مختلفة ولكنها تحتل نفس الحجم في الذاكرة.

المزيد من المعلومات

بالتأكيد، دعنا نوسع قليلاً على الموضوع. في البرمجة، يكون لديك متغيرات من مختلف الأنواع، مثل الأحرف (char)، الأعداد الصحيحة (int)، الأعداد العشرية (float)، وغيرها. كل نوع لديه حجم محدد في الذاكرة.

عندما تقوم بتعريف مؤشر من نوع void، يمكنه أن يشير إلى أي نوع بيانات. هذا يفتح أمامك إمكانية إنشاء مجموعة متنوعة من المؤشرات التي تشير إلى أنواع بيانات مختلفة، ولكن تكون جميعها تشغل نفس الحجم في الذاكرة.

عند تعيين مؤشرات متعددة إلى نفس العنوان، كما فعلت في الكود، يتم مشاركة نفس المكان في الذاكرة بين جميع المؤشرات، وبالتالي يتم تحقيق الهدف من الاتساق في الحجم.

من المهم أن تفهم أن هذا النوع من البرمجة يأتي مع مسؤوليات. عند استخدام مؤشرات void، يجب عليك التحقق بنفسك من نوع البيانات التي يشير إليها المؤشر عند استخدامه، لأنه لا يتم التحقق من النوع تلقائيًا. هذا يعني أنه يجب عليك كمبرمج أن تكون حذرًا لتجنب الأخطاء المحتملة.

زر الذهاب إلى الأعلى