[C/C++] 변수 선언의 기본

개발 노트 2009. 5. 22. 16:15 posted by 무병장수권력자


C/C++ 변수 선언의 기본

작성자 : 김문규
최초 작성일 : 2009.5.21

변수 선언, 기본중에 기본인데 의외로 헷갈립니다. 기초를 잘 정리하셔야 나중에 후환이 없습니다. 저장 위치, lifetime, linkage의 측면에서 표로 정리해 보았습니다.


(storage-class-specifier)  (type-qualifier)  type-specifier
 
  1. Storage class specifier
  • 저장 장소에 따른 분류 구분입니다.

 

저장위치

lifetime

linkage

비고

auto

stack

local

no-linkage

기본값

register

register

local

no-linkage

컴파일러에 따라서 register 저장할 수도 아닐 수도 있음

static

static data

global

내부 선언
: no-linkage

외부 선언
: internal-linkage

변수가 선언된 파일 내부로 한정되는

extern

 static data 참조

global

external-linkage

link time 동적으로 바인딩

 

  • internal level static vs. internal level auto
    • static으로 선언한 경우에는 함수를 빠져 나가도 값이 유지되며, 해당 함수를 재실행하여도 값이 그대로 유지됨
  • external level static vs. external level 키워드 생략(global)
    • static으로 선언한 경우에는 해당 파일에서만 사용 가능, global 전체 프로그램에서 사용 가능
  1. Type qualifier
  • const : 해당 변수, 객체를 수정할 없음
  • volatile : 해당 변수, 객체를 수정할 있음 (기본값)

 

  1. Type-specifier
  • void, char, short, int, long, double, struct, union, enum...

'개발 노트' 카테고리의 다른 글

[Javascript] 긴 문자열 잘라서 표시하기 (게시판 긴 제목 해결)  (0) 2009.06.17
HSQLDB 사용  (0) 2009.05.26
DB 튜닝 - INDEX 제대로 사용하기  (1) 2009.05.18
파이(pi) 값 계산하기  (2) 2009.05.13
C++ course work  (0) 2009.05.11