هي "هياكل مجهولة" قياسية في C؟ تحليل مفصل
مقدمة
مفهوم "الهياكل المجهولة" في C أثار أسئلة حول توحيدها وطبيعتها الدقيقة. تهدف هذه المقالة إلى توضيح هذه المشكلات من خلال فحص الوثائق ذات الصلة واستكشاف الفروق الدقيقة بين أنواع مختلفة من الهياكل المجهولة. تعتبر وثائق MSDN من Microsoft ، وهياكل مجهولة (الهياكل المحددة بدون اسم) غير قياسية في ج. ومع ذلك ، فإن معايير ISO C لا تتناول هذا الجانب بشكل صريح.
فهم الهياكل المجهولة لإعلان الهياكل غير المسموح بها (الهياكل بدون اسم) ، والتي يمكن إنشاء مثيل لها واستخدامها كمسملة منتظمة الهياكل.
هياكل مجهولة:
الكائن المحتوي.
يكمن التمييز في إمكانية الوصول إلى الأعضاء. في حالة الهياكل التي لم يكشف عن اسمها ، يمكن الوصول إلى الأعضاء من خلال مشغل DOT القياسي (على سبيل المثال ، foo.bar) ، في حين أن الهياكل المجهولة تسمح للوصول مباشرة إلى الأعضاء دون تحديد اسم البنية (على سبيل المثال ، foo.hi). القياسية مقابل غير ستاندرد
مثال على الاستخدام
&&&] struct foo {
بنية {
int مرحبا.
int وداع
} حاجِز؛
} ؛
بنية { int مرحبا. int وداع } ؛ // في المثال الثاني ، يمكن الوصول إلى الأعضاء مباشرة:
f.hi = 3 ؛ // ميزة غير معتمدة ، المترجمة المعتمدة
الخلاصة ميزة قياسية تدعمها بعض المترجمين C. يوفر Standard C وظائف الهياكل التي لم تكشف عن اسمها ، ولكن لا يتم تحديد إمكانية الوصول المباشر للأعضاء ولا يضمن دعمها.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3