2012-06-07 3 views

답변

7

안돼!
코드에서 C 표준에 명시된대로 코드를 명시 적으로 수행하지 않으면 전역 변수와 정적 변수가 암시 적으로 초기화됩니다.
요약하면 전역 변수와 정적 변수는 초기화되지 않은 상태로 남지 않습니다.

+0

기본적으로 예입니다. 나는 그것들을 명시 적으로 초기화하기를 원한다. 어떤 정적 분석기도 괜찮을 것입니다. – Kamath

+0

@AUZKamath : 아니오. 표준에서 이미 전역 변수를 기본값으로 초기화해야하므로 gcc는 초기화되지 않은 전역 변수에 대한 경고 또는 진단을 제공하지 않습니다. –

3

아니요. gcc가 자동으로 모든 전역 변수와 정적 변수를 "0"으로 초기화하기 때문입니다.

5

6.9.2 외부 개체 정의 객체 식별자 선언이 파일 범위 및 초기화가 있으면

의미론

1 상기 선언은 외부 식별자에 대한 정의. 스토리지 클래스 지정없이 또는 정적 스토리지 클래스 지정자

2 이니셜 라이저없이 범위 파일이있는 오브젝트의 식별자의 선언하고 는 임시 정의를 구성한다. 번역 단위에 식별자에 대한 하나 이상의 임시 정의가 포함되어 있고 번역 단위에 해당 식별자에 대한 외부 정의가없는 경우 번역 단위에 정확히 식별자의 파일 범위 선언이 포함되어있는 것처럼 동작합니다. 0

(표준)에서 상기 두 개의 절 그 파일 범위를 보장하는 이니셜 라이저 동일 으로 변환 부 월말 복합 타입은 전역 오브젝트는 항상 초기화된다.

관련 문제