يمكن للشخص أن يفسر هذه الرموز C ++؟
سؤال
if (vector1.x > ((float*)&vector1)[j])
هل <م> ي م> ببساطة مجرد مؤشر في ناقلات منتديات مثلا غير C ++ قادرة على استرداد هذه القيم باستخدام مجموعة التدوين على الرغم من ناقلات ليس مجموعة منتديات إذا كان الأمر كذلك وأنا على التخمين يحقق ذلك عن طريق الرجوع <م> ناقلات م> من جانب عنوانه؟
المحلول
ويقول ++ C القياسية التي الصب مؤشر على (القرون) البنية لمؤشر من نوع العنصر الأول سوف تسفر مؤشر إلى العنصر الأول:
struct a {
float a1;
float a2;
float a3;
};
a o1; ((float*)&o1); // points to o1.a1
وأظن قال هذا الرمز المترجم عدم إضافة أي الحشو بين A1 و A2 و A3، بحيث إذا كان الفهارس المؤشر، فإنه مؤشر بالضبط لتعويم انها تريد. حتى أعلى
((float*)&o1)[1] // *would* return o1.a2
وهذا منصة تعتمد، كما لا يمكن تغيير الحشو في المعيار C ++. بحث كيف يرتب هذا الرمز ذلك، وما إذا أنا الحق في كل شيء:)
لا تنتمي إلى StackOverflow