Search

Theseus

C Language - Constant Number

Constant Number Declaration Variety
Literal Constant Number
symbolic Constant Number
pre processor [= #define]
Literal Constant Number
이름을 지니지 않는 상수
이름이 없기 때문에 메모리에 저장되면 이 값을 변경할 수 없다.
Literal Constant Number Example
Source Code
#include <stdio.h>
int main()
{
int val = 30+40;
return 0;
}
Review
val 변수가 나타내는 메모리 공간에 70이 저장된다.
상수들도 메모리 공간에 저장된다.
30, 40도 메모리에 저장되고 CPU에 의해 연산된다.
이름이 없기 때문에 메모리에 저장되면 이 값을 변경할 수 없다.
리터럴 상수의 기본 자료형
상수도 메모리 공간에 저장되기 위해서 자료형이 결정된다.
Source Code 1
#include <stdio.h>
int main(void)
{
    char c = ‘A’;   // 문자상수(char)
    int i = 5;      // 정수상수(int)
    double d= 3.15; // 실수상수(double)
    return 0;
}
Review 1
기본적으로 문자상수는 1byte 할당, 정수상수는 4byte 할당, 그리고 실수상수는 8byte를 할당한다.
Source Code 2
#include <stdio.h>
int main(void)
 {
     float f = 3.14; // float f= 3.14f
     return 0;
 }
Review 2
3.14는 실수상수이고 일반적으로 8byte를 할당한다. 하지만 위의 소스코드에서 이를 float[4 byte]로 선언하면 3.14가 용량이 작아서 프로그램이 실행은 되지만 warning 메시지가 발생한다.

접미사에 따른 다양한 상수의 표현
unsigned long == unsigned long (int)
Symbolic Constant Number
이름을 지니는 상수
심볼릭 상수를 정의하는 방법
const 키워드를 통한 변수의 상수화
상수는 일반적으로 대문자로 선언한다.
Source Code 1
#include <stdio.h>
int main(void)
 {
     const int MAX=100;
     MAX=102;
     const double PI=3.1415;
     return 0;
 }
Review 1
MAX가 const 에 의해 심볼릭 상수가 된 상태에서 그 아래 102를 정의하면 이와 같은 오류가 발생한다.
“assignment of read-only variable”
Source Code 2
#include <stdio.h> 
int main(void)
{
     const int MAX; 
     MAX=100;
     return 0;
}   
Review 2
“assignment of read-only variable”
오류가 발생한다. 그 이유는 심볼릭 상수 MAX에 쓰레기 값으로 초기화되었기 때문이다.
즉, 100으로 한 번 더 초기화하면 에러가 발생한다.

No comments:

Post a Comment