Tôi đã đọc Microsoft's documentation, nhưng chương trình này là rất vụng về, tôi nghĩ rằng tôi muốn kiểm tra lại để chắc chắn rằng tôi đang tìm hiểu nó một cách chính xác ...x64 gọi hội nghị (stack) và varargs
hiểu biết của tôi là phương pháp chung mà các tham số được truyền được này:
--- bottom of stack ---
(return address)
[shadow space for arg 1]
[shadow space for arg 2]
[shadow space for arg 3]
[shadow space for arg 4]
arg N
arg N - 1
arg N - 2
...
arg 6
arg 5
---- top of stack -----
có vẻ như rất lúng túng khi thực hiện va_arg
và như vậy ... đây là thực sự đúng?
Điều đó không thể đúng: không gian bóng cho args 1-4 tiếp giáp với địa chỉ trả lại, theo http://msdn.microsoft.com/en-us/library/ew5tede7 –
Ngoài ra địa chỉ trả lại là ở dưới cùng của ngăn xếp, không phải trên cùng. –
@HarryJohnston: Ồ, tệ lắm, bạn nói đúng, cảm ơn ... không chắc tôi đang nghĩ gì ở đó; đã sửa. Phần còn lại có chính xác không? – Mehrdad