스태킹 순서는 빅엔디안, 리틀엔디안과 동일하며 둘 중 하나만 허용됩니다. C 언어의 기본 선택은 오른쪽에서 왼쪽입니다. 스택이 아래쪽으로 커지기 때문에 푸시된 매개변수의 메모리 배열은 작성 순서와 정확히 동일하므로 디버그하고 살펴보는 것이 더 편리할 수 있습니다. 메모리. 그러나 실제 코드 접근은 스택 포인터 오프셋 형태이므로 머신에서는 특별한 의미가 없습니다. 가변 매개변수를 지원할 수 있는지 여부는 주로 호출자가 스택을 지울 책임이 있는지 여부에 따라 달라집니다. 예를 들어 __stdcall도 스택을 오른쪽에서 왼쪽으로 푸시하지만 호출 수신자가 스택을 지우므로 변수 매개 변수가 지원되지 않습니다. __pascal은 PASCAL 언어를 모방하고 스택을 왼쪽에서 오른쪽으로 푸시합니다. 이는 더 이상 VC에서 지원되지 않습니다.
오른쪽에서 왼쪽으로 원하는 수의 매개변수 지원 가능
스택에 매개변수를 푸시해야 합니다. 스택은 먼저 들어가고 나중에 나옵니다. 왼쪽에서 오른쪽으로 스택에 푸시하면 가장 왼쪽의 첫 번째 매개변수를 찾는 것이 매우 번거롭습니다~
스태킹 순서는 빅엔디안, 리틀엔디안과 동일하며 둘 중 하나만 허용됩니다. C 언어의 기본 선택은 오른쪽에서 왼쪽입니다. 스택이 아래쪽으로 커지기 때문에 푸시된 매개변수의 메모리 배열은 작성 순서와 정확히 동일하므로 디버그하고 살펴보는 것이 더 편리할 수 있습니다. 메모리. 그러나 실제 코드 접근은 스택 포인터 오프셋 형태이므로 머신에서는 특별한 의미가 없습니다.
가변 매개변수를 지원할 수 있는지 여부는 주로 호출자가 스택을 지울 책임이 있는지 여부에 따라 달라집니다. 예를 들어 __stdcall도 스택을 오른쪽에서 왼쪽으로 푸시하지만 호출 수신자가 스택을 지우므로 변수 매개 변수가 지원되지 않습니다.
__pascal은 PASCAL 언어를 모방하고 스택을 왼쪽에서 오른쪽으로 푸시합니다. 이는 더 이상 VC에서 지원되지 않습니다.
왼쪽에서 오른쪽으로 가정
으아악그럼 f(1) 중 1이 a 또는 b로 전달되었나요? . 그래서 왼쪽에서 오른쪽으로 갈 수 없습니다. .