■ 링크와 컴파일.
컴파일 후 목적 파일(obj)이 생긴다. 목적 파일은 헤더파일에 기록된 함수의 사용법이나 함수의 형식만 알고 있을뿐 다른 파일에 있는 함수의 실제 구현은 알지 못한다. 링크는 그런 목적파일들을 모아서 실행파일로 만들어 주는 것이다. 즉 말그대로 링크는 최종 실행파일을 만들기 위해 각 파일들에 연결되어 필요한 부분들을 찾아서 연결하는 작업이다. 완전히 링크하여 실행파일을 만드는 것을 정적링크라고 하고, 프로그램 실행중에 외부에 존재하는 필요한 목적코드를 찾아서 연결하는 것이 동적링크 이다.

■ static 함수
모듈 프로그래밍을 할 때, 이 함수가 모듈 안에서만 사용되고 다른 커널에서 참조할 필요가 전혀 없다면 static 으로 만든다. (init_module()과 cleanup_module()은 예외적으로 static을 하지 않아도 커널 영역에 공개되지 않는다. 자동으로) 커널 영역에 공개된 함수는 /proc/ksyms (커널 2.6에선 kallsyms)에서 확인할 수 있다. static은 원래 변수가 프로그램에서 가장 먼저 초기화되어 전역변수처럼 변수값이 유지된다. 함수 앞에 static이 붙으면 그 함수는 해당 파일에서만 사용되는 함수가 된다. (다른 함수에서 extern 으로 그 함수를 사용하려고 해도 static함수는 쓸 수 없다.)
한 줄 요약: static 함수는 이 함수를 이 파일에서만 쓰겠다는 뜻. (다른 파일에서는 못 씀)

'딱딱한것 > IT/프로그래밍' 카테고리의 다른 글

리눅스 설치.  (0) 2008/06/24
(커널)모듈 프로그래밍에서 링크, static  (1) 2008/06/07
HLSL without Effects(임시)  (4) 2008/06/05
Rendering Water Caustics  (0) 2008/05/29

Trackback Address :: http://zsimi.tistory.com/trackback/175

댓글을 달아 주세요

  1. simi 2008/06/09 14:45 주소 수정 답글 달기

    http://staruml.sourceforge.net/docs/user-guide(ko)/toc.html
    스타UML사용자 가이드