參數傳遞

1、8位參數傳遞				
				
				
void Function(char x,char y,char z)				
{				
				
				
}				
				
				
2、16位參數傳遞				
				
				
void Function(short x,short y,short z)				
{				
				
				
}				
				
3、32位參數傳遞				
				
void Function(int x,int y,int z)				
{				
				
				
}				


傳參時,無論定義char、short還是其它,內存還是按int類型去分配。反彙編時看出:編譯器實質上是按照最優本機尺寸去存儲,使用時再按char、short'、等類型去使用。

1、本機尺寸:如果本機是32位的,那麼對32位的數據支持最好,如果是64位的,那麼對64位的支持
    最好.

2、編譯器遵守了這個規則:

char類型或者short類型的參數不但沒有節省空間,反而浪費了多餘的操作.

結論:整數類型的參數,一律使用int類型


參數傳遞的本質:將上層函數的變量,或者表達式的值“複製一份”,傳遞給下層函數.


總結:

1、小於32位的局部變量,空間在分配時,按32位分配.

2、使用時按實際的寬度使用.

3、不要定義char/short類型的局部變量.

4、參數與局部變量沒有本質區別,都是局部變量,都在棧中分配.

5、完全可以把參數當初局部變量使用
發佈了41 篇原創文章 · 獲贊 26 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章