gcc에서 전처리 또는 편집 단계 중입니까? 다른 컴파일러에서 다른가요?바이너리 작성 단계에서 활성화 레코드가 정의되어 있습니까?
-2
A
답변
3
런타임시 스택 프레임은 프로세서의 스택 레지스터 (Intel x86의 경우 esp
)를 수정하여 만들어집니다.
컴파일러는 각 함수 호출시 스택에 공간을 예약하기위한 특정 명령어 만 덤프합니다. 이 공간은 함수가 종료 될 때 복구됩니다.
+0
일부 언어를 제외하고 런타임에 활성화 레코드를 인스턴스화하는 데 스택을 사용하지 않으며 일부 컴파일러는 변환 중에 작성된 활성화 레코드의 내용을 나타내는 데이터 구조를 가지고 있으며 생성 된 레코드에서 코드가 생성됩니다. –
+0
그리고 일부 프로세서 (특히 SPARC)는 활성화 레코드에 슬라이딩 레지스터 창을 사용합니다. 어떻게 수행 할 수 있는지에 대한 간단한 설명은 모든 복잡한 실제 최적화를 생략한다는 것을 이해하는 것이 중요합니다. – MSalters
관련 문제
- 1. ERROR_PENDING은 어디에 정의되어 있습니까?
- 2. CCSlider가 coco2d에 정의되어 있습니까?
- 3. 오랫동안 정의되어 있습니까?
- 4. android.camera.NEW_PICTURE는 어디에 정의되어 있습니까?
- 5. 레코드가 테이블에 링크되어 있습니까?
- 6. 핵심 애니메이션은 어디에 정의되어 있습니까?
- 7. 구조체에 함수 포인터가 정의되어 있습니까?
- 8. 콜백에 매개 변수가 정의되어 있습니까?
- 9. Enum.values ()는 어디에 정의되어 있습니까?
- 10. 필수 보석은 어디에 정의되어 있습니까?
- 11. 다형성 활성 레코드가 레일에 있습니까?
- 12. 이 레코드가 나와 관련이 있습니까?
- 13. Xcode 작성 작성 내역
- 14. 왜 이러한 기본 매개 변수가 정의되어 있습니까?
- 15. 내 php.ini 파일 위치는 어디에 정의되어 있습니까?
- 16. c 표준 라이브러리에서 stdin은 어디에 정의되어 있습니까?
- 17. Web2c 형식 파일에 어떤 매크로가 정의되어 있습니까?
- 18. C에서 왜 'max'매크로가 이렇게 정의되어 있습니까?
- 19. C# : SHDocVw.WebBrowser_V1은 어떤 어셈블리에 정의되어 있습니까?
- 20. Erlang : 동일한 모듈에 여러 동작이 정의되어 있습니까?
- 21. SVG 필터 요소는 얼마나 잘 정의되어 있습니까?
- 22. + in 이메일 주소는 어디에 정의되어 있습니까?
- 23. PHP 모델 클래스는 어디에 정의되어 있습니까?
- 24. Rails의 "without"메소드는 어디에 정의되어 있습니까?
- 25. 어떤 Windows 라이브러리에 glCreateProgramObjectARB가 정의되어 있습니까?
- 26. NSConcreteData 란 무엇이며 어디에 정의되어 있습니까?
- 27. 왜 분석기가 Zend.Search.Lucene에서 전역 적으로 정의되어 있습니까?
- 28. Android 또는 Java에 일반 리스너가 정의되어 있습니까?
- 29. WPRFLAG 및 _WINMAIN_ 매크로는 어디에 정의되어 있습니까?
- 30. xxx $ UNIX2003 함수는 osx에 정의되어 있습니까?
전처리 중에 스택 프레임을 어떻게 만들 수 있습니까? 전처리는 매크로 확장 만하고 전 처리기 출력은 소스 텍스트입니다. 당신은 당신이 무엇에 대해 물어 보는지 정말로 모르는 것 같습니다. – qrdl
당신은 왜 undestand하지 않습니까? C++에는 행위 기록이라는 개념이 있습니다 - 여기 http://en.wikipedia.org/wiki/Activation_record#Structure-를 읽고 GCC 컴파일러에 의해 생성되는 것을 발견하고 싶습니다. – vehomzzz
@enigma 침착하게 내 의견을 읽으십시오. 정품 인증 레코드 (일명 호출 스택 프레임) 또는 전처리가 무엇인지 이해하지 못합니다. – qrdl