C 언어 메모리, 실행 파일

 

코드와 실행 파일 사이의 C 언어 매핑

텍스트 섹션에 저장 함수 코드 
.DATA 세그먼트에 저장된 글로벌 변수 초기화 
미 초기화 부분 .bss라고 저장된 글로벌 변수 
프로그램 형식의 파일 헤더에 매핑된다

 

인터뷰 질문 :
스크립트 코드 파일이 실행 프로그램이 아닙니다?

그렇기도하고 아니! 여기에서 과정입니다!
실행 프로그램 -> 운영 체제로드 -> 프로세스 생성
스크립트 -> 스크립트 인터프리터 -> 프로세스를 생성 -> 운영 체제가 스크립트 파일을 읽고 해석

-------------------------------------------------- ----------------------------------------------
실행 프로그램 및 사이 메모리 매핑
스택 세그먼트는 형식적인 존재 후에 실행되고,이 프로그램을 실행하기위한 기초가된다.


# 정적 메모리
.bss라고 기억 초기화 글로벌 변수 및 정적
글로벌 정적 변수를 초기화되어 저장 .DATA
실행 코드의 바디에 저장 기능 프로그램는 .text


# 판독 전용 메모리 영역
상수 값은 문자열 상수로서, 프로그램을 저장 .rodata


스택 공간에서 로컬 변수
의 동적 공간 힙
텍스트 섹션에 저장된 실행 코드

-------------------------------------------------- ----------------------------------------------

인터뷰 질문 :
전역 변수와 정적 변수는 왜 초기화 및 초기화되지는 다른 섹션에 저장?

무료로 플레이 할 수

 

연속 메모리 어레이의 공간이 저장 엘리먼트
어레이 요소들의 수를 표시 또는 암시 적으로 지정 될 수있다
예를 들어 :

int로 A [ 5 ] = { 1 , 2 }
 의 INT B [] = { 1 , 2 }

 

추천

출처www.cnblogs.com/sea-stream/p/10995005.html