어 셈 블 리 에서 c++에서 extern 키워드 사용
extern void fun();
void fun();
그러나 변수 에 대해 extern 이 있 는 지 없 는 지 는 차이 가 있 습 니 다.extern 이 있 을 때 컴 파일 러 에 이 변수 가 존재 한 다 는 것 만 알 립 니 다.컴 파일 러 는 이 변수 에 저장 공간 을 분배 하지 않 습 니 다.즉 진정한 성명 이다.extern 이 없 으 면 성명 과 동시에 컴 파일 러 도 이 변수 에 저장 공간 을 분배 합 니 다.다음은 extern 의 상황 이 있 을 때의 c++소스 코드 입 니 다.
int main() {
extern int i;
}
다음은 대응 하 는 외환 코드 입 니 다.
; 1 : int main() {
push ebp
mov ebp, esp;esp , ebp , main ,
; ( ), ebp ,
; 2 : extern int i;
; 3 : }
xor eax, eax
pop ebp
ret 0; ,
위의 외환 코드 를 통 해 알 수 있 듯 이 변수 i 에 역 에서 어떠한 저장 공간 도 분배 하지 않 았 습 니 다.다음은 extern 상황 이 없 는 c++소스 코드 입 니 다.
int main() {
int i;
}
다음은 대응 하 는 외환 코드 입 니 다.
; 1 : int main() {
push ebp
mov ebp, esp
push ecx; extern
;ecx , ecx , i
; ecx , , ,
; 2 : int i;
; 3 : }
xor eax, eax
mov esp, ebp
pop ebp
ret 0
에서 알 수 있 듯 이 extern 키워드 가 없 을 때 변수 i 가 스 택 에 저장 공간 을 배정 한 것 이 확실 합 니 다.위의 어 셈 블 리 는 cl 명령 을 사용 하여 명령 행 에서 발생 합 니 다.vs 2010 으로 어 셈 블 리 인 코딩 을 만 들 면 어 셈 블 리 인 코딩 이 다 를 수 있 지만 뜻 은 같 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
hdu 1717 소수 화 점수 2 (수학)소수 화 점수 2 레이 는 수학 시간 에 선생님 의 말씀 을 듣 고 모든 소수 가 점수 로 표시 되 는 형식 이 라 고 말 했다. 그 는 녹 기 시 작 했 고 곧 완성 되 었 다. 그러나 그 는 또 하나의 문 제 를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.