[問題] 一個看不懂的struct語法

看板C_and_CPP (C/C++)作者 (cjchen)時間16年前 (2009/07/28 20:25), 編輯推噓4(404)
留言8則, 4人參與, 最新討論串1/1
我剛剛在查 CreateProcess() 用法,看到如下範例: STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi; Tchar szCommandLine[] = TEXT("NOTEPAD"); CreateProcess(TEXT("C:\\WINNT\\SYSTEM32\\NOTEPAD.EXE"), szCommandLine, NULL, NULL, false, 0, NULL, NULL, &si, &pi); 我看不懂第一行的語法,這算是建立一個名為 si 的 STARTUPINFO 實體後的 initialization 語法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 121.6.44.235

07/28 20:39, , 1F
是initilize的語法沒錯阿
07/28 20:39, 1F

07/28 21:26, , 2F
@@ 還可以這樣寫喔…
07/28 21:26, 2F

07/28 21:28, , 3F
還是不太懂,struct有這麼多field,如何靠一個size_t值初始化
07/28 21:28, 3F

07/28 21:50, , 4F
你去看STARTUPINFO這個struct的定義, 其實它這第一行的
07/28 21:50, 4F

07/28 21:51, , 5F
寫法只是去initialize第一個struct member "cb"而已!
07/28 21:51, 5F

07/28 21:52, , 6F
該member的內容定義就是該struct的大小, 這樣了解了吧!?
07/28 21:52, 6F

07/29 09:51, , 7F
那個語法還會順手把後面的內容設成 0
07/29 09:51, 7F

07/29 09:52, , 8F
所以這樣寫還蠻有趣的…只是第一個member不是指定size的話…
07/29 09:52, 8F
文章代碼(AID): #1ARkugjQ (C_and_CPP)
文章代碼(AID): #1ARkugjQ (C_and_CPP)