c++默认参数顺序的问题
PHPz
PHPz 2017-04-17 14:58:48
0
3
577

c++默认参数顺序为什么是自右往左?为什么不能从左往右呢?请问这是什么原因。

PHPz
PHPz

学习是最好的投资!

모든 응답(3)
小葫芦

오른쪽에서 왼쪽으로 원하는 수의 매개변수 지원 가능

스택에 매개변수를 푸시해야 합니다. 스택은 먼저 들어가고 나중에 나옵니다. 왼쪽에서 오른쪽으로 스택에 푸시하면 가장 왼쪽의 첫 번째 매개변수를 찾는 것이 매우 번거롭습니다~

Ty80

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

迷茫

왼쪽에서 오른쪽으로 가정

으아악

그럼 f(1) 중 1이 a 또는 b로 전달되었나요? . 그래서 왼쪽에서 오른쪽으로 갈 수 없습니다. .

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿