سؤال

typedef const struct __CFString * a1;

في إعلان typedef أعلاه، تم تعريف a1 كمؤشر إلى البنية الثابتة __CFString.

هنا ماذا يعني "__"؟

ثم أقوم بإنشاء تعريف جديد كـ a2، الموضح أدناه.

typedef const struct CFString * a2;

إذًا، كيف يختلف a1 عن a2؟

هل كانت مفيدة؟

المحلول

بادئ ذي بدء ، الشرطة السفلية في __CFString هي جزء من الاسم، لذلك struct __CFString و struct CFString هي أنواع مختلفة، تماما مثل struct XXCFString و struct CFString هي أنواع مختلفة.

ثانيًا، يتم حجز أي اسم يبدأ بشرطة سفلية مزدوجة للتنفيذ.بمعنى آخر، لا يمكنك استخدام الأسماء التي تبدأ بشرطة سفلية مزدوجة دون المخاطرة بتضارب الأسماء.

إليك إجابة SO أخرى تحتوي على مزيد من التفاصيل: ما هي قواعد استخدام الشرطة السفلية في معرف C++؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top