了解C 對匿名結構的限制
C 編譯器可能允許使用匿名結構作為非標準擴展,引發問題關於其在語言標準中缺失的原因。
理由在於與 C 的兼容性,它支援匿名聯合但不支援結構。 C 繼承了這種相容性,允許匿名聯合以保持一致性。
此外,C 中匿名結構的使用受到限制。提供的範例可能會導致 C 中未定義的行為,因為在沒有適當保護措施的情況下讀取或寫入聯合的不同成員是不明確的。
相反,C 提供了表示使用者定義類型的替代解決方案。提供的程式碼片段演示了一種這樣的解決方案,其中具有訪問器方法的基於數組的結構提供了類似的功能,而沒有匿名結構的缺點。
因此,C 標準中缺乏匿名結構可以歸因於與 C 的兼容性、替代解決方案的可用性以及使用聯合體時出現未定義行為的可能性。
以上是為什麼標準 C 不支援匿名結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!