#02파일분할과 헤더파일
C Language/C basis 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 |
Recent Comments