#02파일분할과 헤더파일

View Comments

#02파일분할과 헤더파일


*컴파일러는 파일단위로 컴파일!! 정의되어있지 않다면 에러를 뱉을수밖에없다.


*외부선언 및 정의사실을 컴파일러에게 알려줘야한다. 그 예약 키워드는 ? ==>  extern

fun.c
     extrn int num;//==>extern때문에 컴파일러가 num이 외부에있음을 인지한다. 에러를 발생시키지않는다.

"외부에  정의되어 있을테야. 그러니 일단 넘어가자"

**static

*함수내에서만 접근 가능. 전역변수와 마찬가지로 한번 메모리에저장되면 종료시까지 소멸되지 않음.

*함수 밖에 static 변수가 선언되면 외부소스파일에서 접근이 불가능한다. 현재 파일에서만 접근가능하다
     -static int num =0;//외부에서접근 불가 extern안먹힘

*함수자체에 static선언이 가능하다. 변수와 기능이동일하다.
     -static void MinCnt(void) =>외부에서 호출 불가.


**헤더파일을 include하는 두가지 방식

*#include<헤더>
=>표준헤더파일을 포함시킬때, 파일이 저장된 디렉토리에서 헤더파일을 찾음.

*#include "헤더"
=>프로그래머가 정의한 헤더파일을 포함할때, 문장을 포함하는 소스파일이 저장된 디렉토리에서 파일을 찾게됨

*절대경로로 접근도가능하긴함.

*구조체의 정의는 파일단위로만 그선언이 유효. 
=>즉 다른고셍서 필요하면 다른소스에서 꼭 선언해줘야됨.==>구조체 헤더파일 하나만들고 그거 include해서 사용

*헤더를 중복삽입할수있어,다음과같이 체크를 해주는 매크로를 적용한다.

#ifndef __CALCUS_H__


#define __CALCUS_H__


(definition for Calcus)


#endif


'C Language > C basis' 카테고리의 다른 글

#04 typedef  (0) 2016.04.27
#03 구조체와 포인터  (0) 2016.04.27
#01 선행처리기  (0) 2016.04.27

0 Comments (+add yours?)

Leave a Reply

Tracbacks (+view to the desc.)