정적 변수를 사용하지 않는 이유는 무엇입니까?

user3290525

정적 변수를 사용하면 코드의 가독성이 모호하지만 특별한 것은 없다고 생각했습니다. 하지만 이제는 텍스트, 데이터, bss, 힙, 스택의 5 가지 데이터 세그먼트가 있다는 것을 알고 있습니다. 텍스트 세그먼트는 코드, 데이터 세그먼트 용입니다. 선언 된 변수, bss seg입니다. 선언되지 않은 변수, 힙은 포인터, 스택은 함수 변수입니다.

프로그램이 실행될 때 컴퓨터에서 차지하는 크기를 최소화하기 위해 로컬 변수보다 정적 변수를 사용하지 않는 것이 더 낫습니까?

정적 변수와 전역 변수가 bss 또는 데이터 세그먼트에 저장되어 있다고 확신합니다. 그리고 bss 및 데이터 세그먼트의 크기는 컴파일 후에도 변경되지 않습니다. 힙과 스택의 경우 사용하면 해제되므로 크기에 대해 걱정할 필요가 없습니다.

나는 이것을 생각하는 것이 맞습니까?

glglgl

텍스트 세그먼트는 코드, 데이터 세그먼트 용입니다. 선언 된 변수, bss seg입니다. 선언되지 않은 변수 용

지금까지 당신이 옳습니다.

힙은 포인터 용입니다.

아니요. 힙은 malloc()C ++의 경우 new.

포인터는 어디에 두든 저장됩니다 (데이터, bss, 스택).

함수의 변수에 대한 스택.

그리고 함수 인수를 위해.

프로그램이 실행될 때 컴퓨터에서 차지하는 크기를 최소화하기 위해 로컬 변수보다 정적 변수를 사용하지 않는 것이 더 낫습니까?

변수가 존재하는 동안 크기는 상당히 동일합니다 (데이터 / bss 대 스택). 존재하지 않는 경우 스택 기반 접근 방식이 이깁니다.

스택 기반 접근 방식은 재진입 (이미 말했듯이) 및 가독성과 같은 다른 측면에서도 유리합니다.

힙과 스택의 경우 사용하면 해제되므로 크기에 대해 걱정할 필요가 없습니다.

물론 여기에서도 크기에 대해 걱정해야합니다. 가서 16MiB 크기 (적어도 32 비트 머신에서)의 백만 청크를 할당하십시오. 그러면 다음을 볼 수 있습니다.

static필요할 때 변수 를 사용 하고 필요하지 않으면 다른 변수를 사용해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

찾기 최적화를 사용하지 않는 이유는 무엇입니까?

분류에서Dev

Dart에서 정적 변수를 상속하지 않는 이유는 무엇입니까?

분류에서Dev

TypeError : 기호를 정수로 암시 적으로 변환하지 않는 이유는 무엇입니까?

분류에서Dev

Mockito 메서드의 정적 가져 오기를 사용하지 않는 이유는 무엇입니까?

분류에서Dev

__restrict__ 수정자가 적용되지 않는 이유는 무엇입니까?

분류에서Dev

다음 코드에서 정적 변수를 사용하는 이유는 무엇입니까?

분류에서Dev

내 정적 변수를 할당 한 후 정의되지 않은 이유는 무엇입니까?

분류에서Dev

정상적인 흐름 요소가 floati 요소를 수용하지 않는 이유는 무엇입니까?

분류에서Dev

C ++ 컴파일러가 사용하지 않는 참조 변수를 최적화하지 않는 이유는 무엇입니까?

분류에서Dev

@forward 이름 지정 접두사가 Sass를 사용하는 변수에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

매개 변수 목록이 지정되지 않은 경우 대리자가 매개 변수를 사용하는 이유는 무엇입니까?

분류에서Dev

get / set을 사용하여 객체를 수정하지 않는 이유는 무엇입니까?

분류에서Dev

C #에서 정적 멤버를 사용하는 이유는 무엇입니까?

분류에서Dev

PyMC의 변수에 사용자 지정 함수를 적용하는 방법은 무엇입니까?

분류에서Dev

bash 함수가 지역 변수를 사용하지 않고 자신을 재귀 적으로 호출 할 수있는 이유는 무엇입니까?

분류에서Dev

왜 FutureTask는 내부적으로 더 이상 AQS를 사용하지 않는 이유는 무엇입니까?

분류에서Dev

JSON :: Builder가`with obj yield` 수정자를 사용하지 않는 이유는 무엇입니까?

분류에서Dev

내 wtmp / utmp가 사용자 수를 재설정하지 않는 이유는 무엇입니까?

분류에서Dev

일반 한정자를 사용하여 스프링을 주입하지 않는 이유는 무엇입니까?

분류에서Dev

매개 변수가 사용되지 않거나 특정 사용 사례에 필수적이지 않은지 감지하는 방법은 무엇입니까?

분류에서Dev

A를 변경할 때 정적 속성 B = $ {A}가 더 이상 변경되지 않는 이유는 무엇입니까?

분류에서Dev

내 정적 변수가 실행 중 정렬되지 않는 이유는 무엇입니까?

분류에서Dev

왜 자바 정적 변수가 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

정적 변수에 대해 '추가'명령이 실행되지 않는 이유는 무엇입니까?

분류에서Dev

정적 변수에 대해 '추가'명령이 실행되지 않는 이유는 무엇입니까?

분류에서Dev

"지정되지 않은 로컬 변수 사용"이 표시되는 이유는 무엇입니까?

분류에서Dev

이 사용자 지정 소싱 기능이 선언 된 변수를 전역 적으로 사용할 수없는 이유는 무엇입니까?

분류에서Dev

기본적으로 확장 정규식 모드를 사용하여 sed를 사용하지 않는 이유는 무엇입니까?

분류에서Dev

바운드 변수가 수정되지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    찾기 최적화를 사용하지 않는 이유는 무엇입니까?

  2. 2

    Dart에서 정적 변수를 상속하지 않는 이유는 무엇입니까?

  3. 3

    TypeError : 기호를 정수로 암시 적으로 변환하지 않는 이유는 무엇입니까?

  4. 4

    Mockito 메서드의 정적 가져 오기를 사용하지 않는 이유는 무엇입니까?

  5. 5

    __restrict__ 수정자가 적용되지 않는 이유는 무엇입니까?

  6. 6

    다음 코드에서 정적 변수를 사용하는 이유는 무엇입니까?

  7. 7

    내 정적 변수를 할당 한 후 정의되지 않은 이유는 무엇입니까?

  8. 8

    정상적인 흐름 요소가 floati 요소를 수용하지 않는 이유는 무엇입니까?

  9. 9

    C ++ 컴파일러가 사용하지 않는 참조 변수를 최적화하지 않는 이유는 무엇입니까?

  10. 10

    @forward 이름 지정 접두사가 Sass를 사용하는 변수에서 작동하지 않는 이유는 무엇입니까?

  11. 11

    매개 변수 목록이 지정되지 않은 경우 대리자가 매개 변수를 사용하는 이유는 무엇입니까?

  12. 12

    get / set을 사용하여 객체를 수정하지 않는 이유는 무엇입니까?

  13. 13

    C #에서 정적 멤버를 사용하는 이유는 무엇입니까?

  14. 14

    PyMC의 변수에 사용자 지정 함수를 적용하는 방법은 무엇입니까?

  15. 15

    bash 함수가 지역 변수를 사용하지 않고 자신을 재귀 적으로 호출 할 수있는 이유는 무엇입니까?

  16. 16

    왜 FutureTask는 내부적으로 더 이상 AQS를 사용하지 않는 이유는 무엇입니까?

  17. 17

    JSON :: Builder가`with obj yield` 수정자를 사용하지 않는 이유는 무엇입니까?

  18. 18

    내 wtmp / utmp가 사용자 수를 재설정하지 않는 이유는 무엇입니까?

  19. 19

    일반 한정자를 사용하여 스프링을 주입하지 않는 이유는 무엇입니까?

  20. 20

    매개 변수가 사용되지 않거나 특정 사용 사례에 필수적이지 않은지 감지하는 방법은 무엇입니까?

  21. 21

    A를 변경할 때 정적 속성 B = $ {A}가 더 이상 변경되지 않는 이유는 무엇입니까?

  22. 22

    내 정적 변수가 실행 중 정렬되지 않는 이유는 무엇입니까?

  23. 23

    왜 자바 정적 변수가 업데이트되지 않는 이유는 무엇입니까?

  24. 24

    정적 변수에 대해 '추가'명령이 실행되지 않는 이유는 무엇입니까?

  25. 25

    정적 변수에 대해 '추가'명령이 실행되지 않는 이유는 무엇입니까?

  26. 26

    "지정되지 않은 로컬 변수 사용"이 표시되는 이유는 무엇입니까?

  27. 27

    이 사용자 지정 소싱 기능이 선언 된 변수를 전역 적으로 사용할 수없는 이유는 무엇입니까?

  28. 28

    기본적으로 확장 정규식 모드를 사용하여 sed를 사용하지 않는 이유는 무엇입니까?

  29. 29

    바운드 변수가 수정되지 않는 이유는 무엇입니까?

뜨겁다태그

보관