คำถามติดแท็ก stdcall

8
__stdcall คืออะไร
ฉันเรียนรู้เกี่ยวกับการเขียนโปรแกรม Win32 และWinMainต้นแบบดูเหมือนว่า: int WINAPI WinMain ( HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show ) ฉันสับสนว่าWINAPIตัวระบุนี้ใช้สำหรับอะไรและพบว่า: #define WINAPI __stdcall สิ่งนี้ทำอะไร ฉันสับสนโดยการมีบางอย่างหลังจากกลับมาประเภท มี__stdcallไว้เพื่ออะไร มันหมายความว่าอย่างไรเมื่อมีบางอย่างระหว่างชนิดที่ส่งคืนและชื่อฟังก์ชัน

9
stdcall และ cdecl
มี (อื่น) ทั้งสองประเภทของการประชุมเรียกร้องให้มี - stdcallและcdecl ฉันมีคำถามสองสามข้อเกี่ยวกับพวกเขา: เมื่อเรียกใช้ฟังก์ชัน cdecl ผู้เรียกจะรู้ได้อย่างไรว่าควรเพิ่มสแต็กหรือไม่ ที่ไซต์การโทรผู้โทรทราบหรือไม่ว่าฟังก์ชันที่เรียกนั้นเป็นฟังก์ชัน cdecl หรือ stdcall มันทำงานอย่างไร? ผู้โทรจะรู้ได้อย่างไรว่าควรเพิ่มสแต็กหรือไม่? หรือเป็นความรับผิดชอบของผู้เชื่อมโยง? หากฟังก์ชันที่ประกาศเป็น stdcall เรียกใช้ฟังก์ชัน (ซึ่งมีหลักการเรียกเป็น cdecl) หรือในทางกลับกันสิ่งนี้จะไม่เหมาะสมหรือไม่? โดยทั่วไปเราสามารถพูดได้ว่าการโทรใดจะเร็วกว่า - cdecl หรือ stdcall?
92 c++  stdcall  cdecl 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.