C
-
-
기호 상수(#define & const)C 2023. 2. 4. 18:58
#define 보통 상수에는 변수와는 달리 이름이 존재하지 않는다. 하지만 상수에도 이름을 붙일 수 있는 방법이 있는데 이는 "기호 상수(symbolic constant)"이다. #define EXCHANGE_RATE 1120 위 코드가 현재의 환율 1120을 기호 상수 EXCHANGE_RATE로 표현한 코드이다. 보통 #define 문장은 프로그램의 맨 첫 부분에 쓰는데, 이들은 전처리기(preprocessor)가 처리한다. 전처리기는 코드에서 EXCHANGE_RATE를 전부 찾아서 1120로 바꾸는 역할을 한다. 기호 상수는 리터럴 상수(상수 값을 그대로 쓰는 방법)에 비하여 몇 가지의 장점을 지닌다. 1) 기호 상수를 사용하면 프로그램을 읽기가 쉬워진다. (위 코드를 예시로 EXCHANGE_RATE..
-
-
오버플로우C 2023. 2. 4. 18:27
C언어에서는 정수형 변수가 나타낼 수 있는 정수의 범위가 제한되어 있으므로 조심해야한다. 즉 정수형 변수를 이용해 산술 연산을 하는 경우, 산술 연산의 결과가 정수형이 나타낼 수 있는 범위를 초과할 수 있다. #include int main(void) { short s_money = 32767; // 최대값으로 초기화한다. s_money = s_money + 1; printf("s_money = %d\n", s_money); return 0; } 위 코드에서 short형 변수에 최대값인 32767을 할당한 후에 1을 증가시켜보았다. 이 경우에는 32767에서 갑자기 -32768이 되는 것을 볼 수 있었다! 이런 경우를 오버플로우(overflow)라고 하며 변수가 나타낼 수 있는 범위를 넘는 숫자를 저장하..
-
unsigned 수식자C 2023. 2. 4. 18:19
C언어에서 unsigned는 부호가 없다는 뜻으로 변수가 음수가 아닌 값만을 나타낸다는 것을 의미한다. 간단히 말해 unsigned를 붙이면 양수만 표현할 수 있다. 음수가 제외되면 같은 비트로 더 넓은 범위의 양수를 나타낼 수 있다는 장점 또한 존재한다. 예를 들자면 short형은 -32768 ~ +32767까지의 정수만을 표현할 수 있었지만 unsigned short형은 0 ~ 65535까지의 정수를 나타낼 수 있다. unsigned int speed; // 부호없는 int형 변수 speed unsigned speed; // 이렇게 해도 된다. # 참고 unsigned라고 쓰면 unsigned int형을 의미한다. 또한 short 형은 short int라고 쓸 수도 있다. 마찬가지로 long 형은 l..