2017-11-06 8 views
0

構造体をStructType structInstance = {};で初期化する動作は何ですか?単にデフォルトのコンストラクタを使用するか、またはすべてのメンバーデータをnullとして初期化しますか?バルカンのチュートリアルから、たとえば、以下を参照してください。this documentationVkApplicationInfoに基づいて`StructType structInstance = {}; 'で構造体を初期化する動作は何ですか?

VkApplicationInfo appInfo = {}; 
appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; 
appInfo.pApplicationName = "Hello Triangle"; 
appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0); 
appInfo.pEngineName = "No Engine"; 
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0); 
appInfo.apiVersion = VK_API_VERSION_1_0; 
+0

「構造体」の詳細によって異なります。 – juanchopanza

+0

@ジャスティン・ノー、まったくやっていない –

答えて

2

集計です。さらに、スカラー(プリミティブ)型のメンバーしか含まれていません。

{ }で集計を初期化すると、各メンバーは、{ }のように初期化されます。コンストラクタは呼び出されません。

{ }でスカラー型を初期化することは、= 0で初期化することと同じです。したがって、列挙型と整数型のメンバはゼロに初期化され、ポインタはNULLポインタに初期化されます。

注:非集約構造体の場合、オブジェクトはvalue-initializedになります。

関連する問題