2014-10-13 4 views
-1

나는 프로젝트에서 작업 중입니다. 런타임에 헤더 파일을 포함 할 수 있다면 프로그래밍 작업을 줄일 수 있습니다. 나는 그것에 대해 google'd,하지만 모두 헛된. 내 질문 :
런타임에 C 프로그램에 헤더 파일을 포함 할 수 있습니까?
예인 경우 어떻게합니까?
그렇지 않은 경우 이유는 무엇입니까?C에서 헤더 파일 포함하기

+1

실제 문제는 무엇입니까? 헤더 파일은 컴파일러에 대한 입력이며 런타임에는 컴파일러가 없습니다. –

답변

1

아니요. 헤더 파일은 컴파일러으로 구입하여 컴파일하는 동안 필요한 기호를 충족시킵니다.

과 관련이없는을 컴파일하려면 런타임에 읽을 수있는 구성 파일에 넣을 수 있습니다.

1) Pre-processing 
2) Compilation 
3) Assembly 
4) Linking 

및 사전 처리는 첫 번째 단계입니다 :

2

소스 파일은 컴파일 타임에만 읽히므로 질문에 대한 대답은 이 아니며이 아닙니다. 런타임에는 소스 코드 헤더와 아무 관련이없는 실행 바이너리 만 있습니다.

0

없음 헤더 파일이 실행 될 수있는 C 프로그램 등의 실행시에 네 단계를 추가 할 수 없습니다 다음과 같다 소스 코드가 통과합니다. 이 단계에서 다음과 같은 작업이 완료됩니다 :

1) Macro substitution 
2) Comments are stripped off 
3) **Expansion of the included files** 

및 중간 파일에서 관찰

우리가 인사 -o에서는 hello.c gcc가 -Wall - 저장 - 임시 직원으로 GCC에 인수를 전달하여 얻을 수 있음을 보여줍니다 :

1) All the macros are expanded in the preprocessing stage. 
2) All the comments are stripped off. 
3) The third observation is that beside the line ‘#include’ is missing and instead of that we see whole lot of code in its place. So its safe to conclude that stdio.h and header files has been expanded and literally included in our source file. 

다음 코드 컴파일이 수행됩니다.

컴파일하기 전에 헤더 파일을 포함합니다.