전역 변수를 사용하면 실행 파일의 크기가 증가합니까? 그렇다면 어떻게? 데이터 섹션 크기 또는 텍스트 섹션 크기 만 증가합니까?전역 변수는 실행 파일의 크기에 어떻게 기여합니까?
나는 아래와 같이 전역 변수 초기화가있는 경우 : 이제
char g_glbarr[1024] = {"jhgdasdghaKJSDGksgJKASDGHKDGAJKsdghkajdgaDGKAjdghaJKSDGHAjksdghJKDG"};
을,이 데이터 섹션에 1024을 추가 않으며,시 초기화 문자열의 크기가 섹션을 텍스트로?
만약이 배열을위한 공간을 정적으로 할당한다면, malloc하고 memcpy를 수행하면 데이터 섹션 크기 만 줄이거 나 텍스트 섹션 크기도 줄어들 것입니다.
문자열 리터럴 **은 ** 아무 곳에서나 실제로 사용되지 않는 경우 ** 제거 될 수 있습니다 **. –
문자열 리터럴은 단지 예일뿐입니다. 구조체 배열 일 수 있고 문자열, 정수 등으로 초기화 될 수있는 전역 변수가 많이있을 수 있습니다. malloc을 사용하여 전역 변수에 메모리를 할당하면 크기가 줄어 듭니다. – Jay
"실행 파일의"섹션 "이 증가한 이유는 무엇입니까? - 일이 어떻게 작동하는지 더 깊이 이해하는 것이 중요합니다. – Jay