프로세서 스택에서 mov 및 pop 등은 단일 명령입니다.사용자 스택 대신 액세서리 함수 호출을위한 단일 명령 푸시/팝?
컴파일러는 단일 기계 명령어 버전을 생성하지만 런타임 중에는 스택이 ... 일반 스택 컨테이너라고 가정하고 런타임 중에 스택에 저장된 값에 액세스하면 수많은 기계어로 번역 할 수 있습니다.
단일 기계 명령어보다 길게 설정된 setter 및 getter 멤버 함수를 사용하는 대신 동적 런타임 객체에 대해 동일한 수준의 효율성을 달성 할 수 있습니까?
내 생각은 마크 포인터를 사용하는 것이지만 기능 호출에 의지하지 않고 런타임시 메모리 위치 나 메모리 위치에 값을 문자 그대로 밀어 넣는 방법을 모르겠습니다.
인라인 조립은 아마도 옵션 일 수 있으므로 가능한 경우 피하고 싶습니다. 그러나 나는 그것이 여전히 하나의 명령이되지 않도록 함수 본문에 넣어야한다고 생각합니다.
컴파일러가 C 함수를 인라인 할 수 있다는 것을 알고 계실 겁니다. 맞습니까? – Borealid
아이디어를 함수로 올바르게 표현하면 정말 좋은 * 컴파일러 *가 바로 사용할 수 있습니다. In-lining은 당신을 가장 잘 이끌어 줄 것이고, 현대 컴파일러는 그렇게합니다. 사용중인 컴파일러의 어셈블리 출력을 검사 해보십시오. – dmckee