함수 호출의 매개변수 평가 순서
C 및 C와 같은 프로그래밍 언어에서는 함수 매개변수가 평가되는 순서가 주제입니다. 토론의. 이 문서에서는 각 언어 표준에 설명된 세부 사항을 자세히 살펴봅니다.
C 언어
C99 및 C11 표준에 따르면 함수 매개변수를 평가하는 고정된 순서는 없습니다. . 함수 지정자, 인수 및 그 안에 있는 하위 표현식의 평가는 지정되지 않은 순서로 발생하지만 실제 함수 호출 앞에 시퀀스 포인트가 있습니다. 이는 함수가 본문에 들어가기 전에 매개변수 평가로 인한 부작용이 발생함을 의미합니다.
C 언어
C에서 언어 표준은 인수 평가 순서를 지정합니다. 함수 호출에서는 지정되지 않았습니다. 인수 표현식 평가의 모든 부작용은 함수가 입력되기 전에 발생합니다. 후위 표현식과 인수 표현식 목록의 평가 순서도 지정되지 않습니다.
하드웨어 스택 사용
C 표준이나 C 표준 모두 기능 매개변수를 전달하기 위한 하드웨어 스택. 매개변수 전달 방법은 컴파일러 디자이너에게 맡겨진 구현 세부 사항입니다. 대부분의 아키텍처는 스택 기반 접근 방식을 사용하지만 보편적으로 구현되지는 않습니다.
결론
C 및 C에서 함수 매개 변수의 평가 순서는 다음에 따라 달라질 수 있습니다. 구현은 언어 표준에 의해 명시적으로 정의되지 않았기 때문입니다. 그러나 두 언어 모두에서 해당 기능이 실행되기 전에 인수 평가로 인한 부작용이 발생한다는 점에 유의하는 것이 중요합니다.
위 내용은 C 및 C 함수 호출의 매개변수 평가 순서는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!