การจัดทำดัชนีเป็นโครงสร้างถูกกฎหมายหรือไม่?
ไม่ว่าโค้ดจะ 'แย่แค่ไหน' และสมมติว่าการจัดตำแหน่ง ฯลฯ ไม่ใช่ปัญหาในคอมไพเลอร์ / แพลตฟอร์มพฤติกรรมที่ไม่ได้กำหนดหรือเสียหรือไม่? ถ้าฉันมีโครงสร้างแบบนี้: - struct data { int a, b, c; }; struct data thing; มันเป็นสิ่งที่ถูกต้องตามกฎหมายในการเข้าถึงa, bและcเป็น(&thing.a)[0], (&thing.a)[1]และ(&thing.a)[2]? ในทุก ๆ คอมไพเลอร์และทุกแพลตฟอร์มที่ฉันลองใช้กับทุกการตั้งค่าที่ฉันลองมัน 'ได้ผล' ฉันแค่กังวลว่าคอมไพเลอร์อาจไม่ทราบว่าbและthing [1]เป็นสิ่งเดียวกันและเก็บค่า 'b' ไว้ในรีจิสเตอร์และสิ่งที่ [1] อ่านค่าผิดจากหน่วยความจำ (เช่น) ในทุกกรณีฉันพยายามทำในสิ่งที่ถูกต้อง (ฉันรู้แน่นอนว่ามันไม่ได้พิสูจน์อะไรมาก) นี่ไม่ใช่รหัสของฉัน มันรหัสฉันต้องทำงานกับฉันสนใจไม่ว่าจะเป็นที่ไม่ดีรหัสหรือเสียรหัสที่แตกต่างกันมีผลต่อการจัดลำดับความสำคัญของฉันสำหรับการเปลี่ยนแปลงการจัดการที่ดี :) ติดแท็ก C และ C ++ ฉันสนใจ C ++ เป็นส่วนใหญ่ แต่ยังรวมถึง C …