考慮以下兩個代碼段(爲了A和B)的名稱的:可用性在C++中的結構
struct abc {
int a {};
abc* next;
};
和
struct abc {
int a {};
abc next;
};
事實是:
1.片段甲已驗證。
2.摘錄B無效。
參數:
B是無效的,因爲編譯器不能在聲明的時間來確定ABC的代碼段B中的大小。 (Stroustrup的,C++編程語言,8.2.2)
我的疑問:
不是abc
片斷A的編譯過程中所需的大小?聲明指針爲abc
時,不需要大小abc
?否則在編譯期間,編譯器如何知道如何解引用abc*
?
我認爲原因可能是遞歸計算abc大小。當編譯器計算abc的大小時,請考慮一下。嘗試計算這個公式:size(abc)= size(int {})+ size(abc) – Adem
指針的大小不依賴於指向的類型的大小。 –
這是[Inception](http://www.imdb.com/title/tt1375666/)適用於軟件開發。結構體中的結構體struct中的結構體中的結構體.... – HelloWorld