반응형
SMALL

2.2.2 변수 선언

> 변수명과 변수가 가질 자료형을 지정하여 변수를 위한 기억 공간을 할달하는 것

변수 선언 시 고려 사항

- 변수에 저장될 값의 크기 (범위 )

 

//2-7.c 변숫값의 범위를 벗어난 예 
#include <stdio.h>  
void main(){short int num1, num2; 
num1 = 32767+1; 
//short int형의 범위를 벗어남 
num2 = -32768-1; 
//(short int형의 범위 : -32768~32767 )

printf("num1 = %d \n", num1); 
printf("num2 = %d \n", num2); 
}

 

 


//2-8.c 변숫값의 범위를 벗어난 예
#include <stdio.h> 
void main(){
int num1, num2;
num1 = 32767+1;
num2 = -32768-1;

printf("num1 = %d \n", num1); 
printf("num2 = %d \n", num2); 
}


- 변수의 선언 위치

변수가 통용되는 범위를 결정하므로 매우 중요하며, 함수의 외부와 내부에 선언할 수 있다.

함수의 외부에서 선언된 변수는 프로그램 어디에서나 쓸 수 있는 전역변수를 의미하며,

- 전역변수는 프로그램이 실행되는 동안에 항상 존재하는 자료영역에 저장

함수의 내부에서 선언된 변수는 선언된 함수의 내부에서만 인식되며 이는 지역변수를 의미

- 지역변수는 임시 기억공간인 스택 영역에 저장

 

//2-9.c
//변수를 함수 외부와 내부에서 선언한 예

#include <stdio.h>  
int a = 100; // 전역변수 a 
void func(){ 
int a= 200; 
printf("func()에서 a의 값 -> %d \n", a); 
// func()의 지역변수 a출력  
 
int main(){ 
printf("main()에서 a의 값 -> %d \n", a); 
// 전역변수 출력 
func();

}


- 변수의 초기화

모든변수는 변수 선언이 이루어지면 선언된 변수에 특정 값을 부여해야 하며, 이를 초기화라고하낟.

 

 

 

2.3 선행처리기

2.3.1 선행처리기

 컴파일 명령을 내렸을 때 컴파일에 앞서 프로그램 선두에 선언된 지시자들을 미리 처리하는 역할 수행

 

*선행처리기를 사용할 떄 주의할 점

- 반드시 #로 시작해야 한다.

- 명령문 끝에는 세미콜론 ; 을 붙이지 않는다.

- 한 줄에 하나의 명령만 쓴다.

- 소스 프로그램의 첫 부분에 위치

 

2.3.2 파일포함

#include

> C 언어에서 제공되는 헤더파일 (*.h )를 자신의 소스파일에 읽어 들여 함께 컴파일 하고자 할 때 사용

 

c프로그램에서 표준함수인 printf(), scanf() 등을 사용하려면

- 이함수들의 원형(prototype)이 선언되어 있는 표준 입출력 헤더파일인 stdio.h 를 #include 시켜야함

 

 

2.3.3 매크로 정의

#define

> 매크로를 정의할 떄 사용

 

매크로 (macro)

- 선행처리기 #define 을 사용하여 단순 치환되는 자료

- 프로그램 작성 시에 명령이나 수식 또는 상수값이 자주 사용 될 때 이들을 대표하는 이름을 붙여 사용하는 대상

 

//2-12 매크로사용 예
#include <stdio.h>
#define ADDR "asdfgg"
#define TEL "1234-56789"

void main(){ 
printf("주소 : %s \n", ADDR); 
printf("전화 : %s \n", TEL); 
}

 

 

2.3.4 조건부 컴파일

>조건에 따라 프로그램을 컴파일하는 명령

> 최적의 코드로 프로그램을 작성할 수 있기 때문에 시스템의 성능 향상

 

<> #if 와 #elif 다음에는 컴파일 여부를 결정하는 조건문 필요

- 조건문은 선행처리과정에서 진위 여부를 판단할 수 있어야 함

- 변수 지정이나 함수 호출 불가

- 주로 매크로 값이 사용

 

 

 

2020/05/12 - [방송통신대학/알고리즘] - 제2장 자료형과 선행처리기(자료형)

 

반응형
LIST

+ Recent posts