0

잠시 동안 Java 또는 C와 같은 언어에서 상수 멤버의 역할에 대해 혼란스러워했습니다. 소스 코드 수준에서, 특정 핵심 멤버가 변경 및 변경되는 것을 방지하지만 컴파일되거나 해석 될 때 변수 멤버와 변수 멤버간에 차이가 있습니까? 아니면 모두 메모리 주소에 대한 포인터입니까?컴파일 된 또는 해석 된 코드의 상수 및 가변 멤버 간의 차이점

아마도 컴파일러/인터프리터는 변수를 변경할 수 있도록하기 위해 특별한 것을 구현해야한다고 생각합니다. 상수 멤버를 처리 할 때 (실행 속도를 높이거나 메모리를 적게 사용하는 등) ,이게 사실인가요, 아니면 완전히 잘못된 나무 위로 올라 갔습니까?

답변

1

코드가 실행되면 const 변수와 변수가 같은 위치에 저장되지 않습니다. 상수 값은 프로그램과 함께 플래시 메모리에 저장됩니다. 변수는 플래시에도 저장되지만 프로그램이 실행될 때 수정할 RAM에 복사됩니다. 변수를 const로 만들면 RAM에있는 모든 것을 푸시하지 않아도 시간과 공간을 절약 할 수 있습니다. 그것을 수정할 필요가있을 때 어쨌든 램으로 밀어 넣을 것이다. 그러나 대부분의 시간 const 변수는 수정되지 않을 것이다. 이것은 코드가 실수로 값을 수정하지 못하도록하려는 소프트웨어 사실에 추가됩니다.

+0

하드웨어 응답이 너무 많습니까? – Alex

+0

물론 아닙니다! 그것은 많은 의미가 있습니다, 고마워요! – SamTebbs33

+0

대답이 당신이 찾고있는 것이라면, 당신의 질문을 해결했다고 표시하여 Google에서 쉽게 찾을 수 있도록하십시오;) – Alex