C 和C 中自動結構體和陣列的部分初始化
GNU C 參考手冊指出,如果結構體變數未初始化,其成員的價值觀是不確定的。但是,標準沒有定義結構體或陣列的部分初始化。
部分初始化術語
「部分初始化」是指提供以下物件一些但不是全部初始化器聚合(陣列或結構)。
自動結構和的初始化規則數組
C 和 C標準為自動結構體和陣列的初始化指定了以下規則:
部分初始化行為
儘管標準中沒有明確定義部分初始化,但所有主流編譯器都遵循以下規定行為:
範例
以下C程式碼部分初始化一個結構體:
struct S { int a; char* b; int c; }; S s = {1, "asdf"};
在此範例中,s.a 初始化為1 、s.b 被初始化為“asdf”,而s.c 因未明確初始化而為零初始化。
以上是C 和 C 中的自動結構和陣列如何部分初始化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!