struct s1 { int a; int b; };
struct s2 { int a; int b; };
struct s2 test(void) {
struct s1 s = { 1, 2 };
return s; // incompatible types
}
在上面的代碼,可以我返回s
而不創建新struct s2
變量並使用s
的值填充了嗎?確保struct s1
將始終與struct s2
相同。返回相同的結構,但用不同的名稱
當你想返回一個s1的實例時,爲什麼有一個返回值類型爲s2? – mathematician1975
在我看來,返回一個結構只是一個壞主意。相反,我會要求調用者傳遞一個指向他們管理的結構體的指針,我會爲它們填充它。 – mah
你爲什麼要這樣做?構造一個新的'struct s2'並返回它基本上是免費的(您已經通過值返回結構體,並因此複製它)。 – Mankarse