C++에서 전역변수는 기본적으로 extern 속성인가요?
글쓴이: vani2 / 작성시간: 수, 2013/10/30 - 10:40오전
저는 지금까지 Static 속성을 가지는 것으로 알고 있었는데요.
방금 다음 코드를 실험해 보니 경고도 없고 링크에러도 없고 아무문제 없이 컴파일되고 실행이 됩니다.
소스1.cpp
extern int Extern; void main(void) { cout << Extern << endl; }
소스2.cpp
int Extern = 12; // extern 키워드를 붙이지않음
결과 : 12
실험환경 vs2013 Express
const 한정자를 추가하면 const linkage에 의해 자동으로 static속성을 가지므로 그렇다 쳐도
아무것도 안붙인 전역변수는 자동으로 extern 속성을 가지나요?
Forums:
http://hwangssi.egloos.com/33
http://hwangssi.egloos.com/3367570
http://ccode.tistory.com/114
질문을 올리시기전에 검색 먼저 하는 습관을 가지시는게 좋을 것 같습니다.
Quote:const 한정자를 추가하면 const
질문하신대로입니다. C++11 드래프트에 그렇게 나오네요.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
C++도 C와 마찬가지로 static 지정자가 명시되지 않은 전역변수는 extern 지정자가 붙은 것처럼 처리하나,
예외적으로 const 전역변수는 static을 붙인 것처럼 처리합니다.
C 전역변수는,
C++ 전역변수는,
댓글 달기