gcc는 정적 변수를 자동으로 0으로 초기화합니까?
함수에 정적 변수가 선언되었지만 초기화되지 않았습니다.이 변수가 자동으로 0으로 초기화됩니까?
static int idx;
예 - C 표준 ISO/IEC 9899:1999 a.k.a.C99(및 C++) 표준은 이에 해당한다고 말합니다.정확한 텍스트는 WG14 N1256 섹션 6.7.8("초기화")의 항목 10을 참조하십시오.
다른 사람들이 지적한 것처럼 항상 정적 변수를 초기화하는 것이 좋습니다.
static int idx = 0;
이렇게 하는 이유는 일부 컴파일러가 정적 변수를 항상 0으로 초기화하지 않기 때문이 아닙니다(이러한 초기화에 실패한 컴파일러는 종단적으로 고장나 C 또는 C++ 컴파일러라고 주장할 수 없음), 이것은 Say What You Mean - 아마도 프로그래밍의 가장 기본적인 규칙입니다.
기준은 그렇다고 하지만...모범 사례는 항상 변수를 초기화해야 한다는 것을 나타냅니다.컴파일러를 변경하거나 다른 컴퓨터에서 컴파일해야 할 때 예기치 않은 동작이 발생할 가능성을 최소화하려는 경우를 결코 알 수 없습니다.
언급URL : https://stackoverflow.com/questions/1294772/does-gcc-automatically-initialize-static-variables-to-zero
'source' 카테고리의 다른 글
트랙터 전역 변수 설정 (0) | 2023.11.06 |
---|---|
MySQL의 10진수(3,2) 값은 항상 9.99입니다. (0) | 2023.11.06 |
html 코드를 mysql에 저장하는 가장 좋은 방법은 무엇입니까? (0) | 2023.11.06 |
Jquery $(이) 하위 선택기 (0) | 2023.11.06 |
메인 스레드가 종료되면 다른 스레드도 종료됩니까? (0) | 2023.11.06 |