文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>(筆記) struct對function可以pass by value嗎?可以return一個struct嗎? (C/C++)

(筆記) struct對function可以pass by value嗎?可以return一個struct嗎? (C/C++)

时间:2011-02-18  来源:真 OO无双

Introduction
使用環境:Visual Studio 2010 / Visual C++ 10.0

C再傳遞資料進function時,就只有兩招,一招是pass by value,一招是pass by address,一些較小型的型別如int、double,我們會使用pass by value配合return,當然使用pass by address亦可;而一些較大的型別,如string、array、struct,我們會使用pass by address的方式,也就是只把pointer copy進stack,而不需將整個資料copy進stack,這樣比較有效率。

昨天好友Roger問我可以將struct以pass by value的方式傳進function,並且return一個struct嗎?

在實驗之前,我們先用既有的認知做推理:

1.根據以往的經驗,struct都是以pass by address的方式,所以不確定C compiler是否能接受struct pass by value的寫法。(須實驗)

2.就算C compiler能接受語法,是真的pass by value?還是只是pass by address的syntax suger? (須實驗)

3.就算C compiler能struct pass by value,效率一定遠比struct pass by address差,因為struct通常都很大,且需整個struct copy進stack,再整個struct從stack內copy出來。(這點可以確定)

接下來,我們來作實驗:

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载