PHP中文网2017-04-17 15:00:48
壓棧順序和大端字節序和小端字節序一樣,哪個都可以的。 C語言預設選擇從右往左,應該是因為堆疊是向下增長的,所以這樣會使壓入的參數記憶體排列正好和書寫的順序一致而已,調試看內存可能比較方便。不過實際程式碼存取都是棧指標+偏移的方式,所以對於機器來說沒有特別意義。
能不能支援可變參數,主要是看是不是由呼叫者負責清除堆疊。例如__stdcall也是從右往左壓棧,但是被呼叫者清除堆疊,所以不支援可變參數。
__pascal是模仿PASCAL語言從左到右壓棧,VC已經不再支援了。