안녕하세요 열코입니다.

이번 시간에는 C언어 변수 선언 및 키워드에 대해 알아보겠습니다.

변수(variable)란 메모리에 할당된 기억장소를 일컫는말이며 기본적으로 어떤 형태의

데이터를 저장하는데 사용됩니다. 또한 변수의 종류마다 다른 크기의 메모리가 필요합니다.


변수 선언 방법

일반적인 변수 선언의 형식은 다음과 같습니다.


타입 변수이름;

타입 변수이름1, 변수이름2, 변수이름3;


타입은 변수의 자료형을 말하며, 기본자료형 및 사용자 정의 자료형이 올 수 있습니다.

사용자 정의 자료형은 C언어에서 대표적으로 구조체를 떠올릴 수 있겠네요.


C언어의 대표적인 기본 자료형은 다음과 같습니다.


char (1byte) : 문자 (-128 ~ 127)

short (2byte) : 정수 (-32768 ~ 32767)

int (4byte) : 정수 (-2147483648 ~ 2147483647)

long (4byte) : 정수 (-2147483648 ~ 2147483647)

float (4byte) : 실수 (부동소수점, ±3.4x10^-37 ~ ±3.4x10^38)

double (8byte) : 실수 (부동소수점, ±1.7x10^-307 ~ ±1.7x10^308)


맨 앞은 변수의 자료형 이름이며, 괄호안은 자료형의 크기입니다.(32bit 운영체제 기준)

마지막 괄호는 변수의 범위입니다.



변수 명명 규칙(Naming Rule)

변수의 이름을 정하는것은 개발자에게 아주 고민스러운 일입니다.

마치 어릴적 메이플스토리에서 캐릭터 생성화면에서 멈춘것처럼 말이죠.

잘 지은 변수이름하나가 프로그램 전체의 가독성과 이해에 영향을 미칠정도로 변수의 이름은 중요합니다.


C언어에서는 변수 이름으로 다음과 같은 제약사항이 있습니다.


1. 영문자, 숫자, 밑줄( _ )만이 사용가능하다. (최신 컴파일러에서는 한글도 가능합니다.)

2. 숫자를 변수 이름의 처음으로 사용 할 수 없다. (예. int 2d; → 오류)

3. 변수 이름에서 대소문자는 구분된다. (예. int X와 int x는 별개의 변수)

4. 키워드는 변수이름으로 사용할 수 없다. (아래 세부설명 참고)

5. 하나 또는 두개의 밑줄로 시작하는 이름은 미리 식별된 문자로 예약되어있다. (_ 또는 __)

6. 변수 이름의 길이는 제한이 없다.





또한 개발자 마다 변수이름을 붙이는 스타일이 다르기 때문에 변수 명명법에 대한 코딩 표준법이 존재합니다.

대표적으로 파스칼케이싱(PascalCasing)과 카멜케이싱(CamelCasing)에 대해 알아보겠습니다.


- Pascal Casing

클래스(C++,Java), 열거형(enum), 이벤트, 함수 등의 이름을 만들 때 사용하며 대문자로 시작합니다.

복합어인 경우 중간에 새로 시작하는 단어를 대문자로 사용합니다.

예) GetName, PrintString, MyStruct, NumOfPeople 등


- Camel Casing

함수의 매개변수의 이름에 적용되며 첫번째 문자는 소문자로 시작하며

복합어일 경우 새로 시작하는 단어를 대문자로 사용합니다.

예) getName, printString, myStruct, numOfPeople 등



C언어 키워드

키워드(keywords)는 C언어의 특정 예약어로 기능을 사용하는데 도움이 되는 목록입니다.

C언어에서는 총 32개(이상)의 키워드가 있습니다.


auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, static, struct, switch, typedef, union, unsigned, void, volatile, while


위 키워드들은 코드 작성시 파란색으로 변경되며 변수이름으로는 사용할 수 없습니다.


특수한 변수들

const : 상수를 선언하는데 사용할 수 있습니다.

C언어 상수는 반드시 선언시 초기화해야하며 포인터와 함께 사용될 수 있습니다.

상수는 프로그램 실행 도중 더이상 값을 수정할 수 없습니다.


const type(자료형) name(변수이름) = value(값);


extern : 변수가 사용된 블록이 아닌 다른곳에서 정의됬다고 명시합니다.

기본적으로 C언어에서 헤더파일이나 다른 .c 파일에서 선언된 변수를 사용하기 위해 사용됩니다.


extern type(자료형) name(변수이름) = value(값);


static : 프로그램에 정적 변수를 선언하는데 사용됩니다.

기본적으로 C언어 변수는 동적(dynamic) 변수로써 사용시 메모리가 할당되며 사용되고 해제됩니다.

정적 변수로 선언되면 프로그램 종료시까지 메모리가 유지됩니다.

static 변수 역시 const와 같이 사용될 수 있으며 오직 한번만 초기화됩니다.


static type(자료형) name(변수이름) = value(값);


void : 빈 데이터 유형입니다.

함수의 반환값이 없을때 사용하거나 포인터가 자료형과 관계없이 가리킬 때 사용됩니다.


typedef : 이미 존재하거나 사용자 정의 자료형(구조체 등)에 새 이름을 제공할 때 사용합니다.

구조체 이름이 너무 길거나 기존 자료형 이름을 간단하게 표기할 때 사용합니다.


typedef type(자료형) name(새로 정의한 자료형 이름);

예) typedef long long int LL; (long long int를 LL로 사용하겠다.)





이상 'C언어 변수선언 및 키워드'에 대해 알아보았습니다.

질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!

메인 페이지로 이동하시면 더 많은 자료를 볼 수 있습니다.



'C, C++' 카테고리의 다른 글

C언어 변수 이름이 숫자로 시작할 수 없는 이유  (0) 2018.11.13
C 정적(static) 변수  (0) 2018.10.29
C 표준 입력 함수 scanf  (0) 2018.10.23
C 표준 출력 함수 printf()  (0) 2018.10.22
C++ 가상 함수(Virtual Function)  (8) 2018.10.19
C++ 연산자 오버로딩  (2) 2018.10.12
C++ 함수 오버로딩  (0) 2018.10.11
C/C++ 메모리 동적할당  (0) 2018.10.11

to Top