什麼建議使用,傳遞一個結構作爲指針const
即傳遞一個常量指針到一個結構VS傳值
int doCalculations(const MyStruct* my_struct);
或由值傳遞struct
,如在,
int doCalculations(MyStruct my_struct);
爲什麼?
在C++中,我記得在某個地方,當struct
/Class
有一個不平凡的構造函數時,應該使用傳遞引用const
的地方。在C語言中,雖然沒有構造函數,但我想這將需要一些時間來製作struct
的本地副本。
這取決於你的函數將如何使用'struct'。如果它必須改變'struct'裏面的東西,你需要一個指針。否則傳遞'struct'本身更可取。 – Kninnug
@Kninnug通過值傳遞使用不必要的堆棧數量。更常見的指導是你應該傳遞指向const的'const const MyStruct *' - 當sizeof(MyStruct)> x'爲某個小值'x' – simonc
@simonc:我想你的意思是'指向const' ,而不是'const指針'... – a1ex07