2017-09-10 9 views
0

나는 짧은 stdio.h 헤더 파일을 잘라 내고 내가 필요한 코드 만 유지하려고 생각하고있는 C 프로젝트에서 작업하고 있습니다.재 설계하는 방법 # <stdio.h> in C

어떻게해야합니까? 게다가 짧은 커팅으로 속도에 어떤 변화가 있을지 알고 싶습니다.

+6

이렇게하면 이익이 없습니다. 옵티마이 저는 사용 된 부품 만 포함하는 어셈블리를 생성합니다. –

+2

그건 절대적으로 의미가 없습니다. stdio.h는 아주 작은, 기본적으로 단지 선언을 포함하며, 해당 정의는 이미 표준 라이브러리에 컴파일되어 있습니다. 그것은 컴파일러가 그것을 통해 경주하기위한 케이크 조각입니다. – PSkocik

+1

관련 부분을 복사하면 컴파일러를 변경하면 원래 정의가 변경되고 코드가 손상 될 수 있습니다. –

답변

2

헤더 파일은 인터페이스 파일입니다. 그들은 (보통) 응용 프로그램을 부 풀릴 구현 코드를 포함하지 않습니다. 그것들은 crt.o 또는 libc.so과 같은 이름의 라이브러리 파일에 대한 컴파일러의 목차와 같습니다. 당신이 원하는 경우

, 당신은 예를 들어, 혼자서 표준 기능을 미래 선언 시도 할 수 있습니다 :

extern int printf(const char *, ...); 

이 연습은 눈살을 찌푸리게하고 아주 잘 지원되지 않을 수 있습니다. 이러한 함수는 표준 헤더에 매크로 (표준 라이브러리 바이너리 파일과 마찬가지로 extern 심볼)로 정의 될 수 있으므로 일반적으로 #include에 비해 성능이나 실행 파일 크기에 약간의 차이가있을 수 있습니다.

+0

"라이브러리 유형없이 선언 할 수있는 함수"에 대한 어딘가에 규칙이 있습니다. – o11c

+0

@ o11c 예, 필자도이를 찾아보기가 힘듭니다. 나는 C위원회가이 규칙에 대해별로 행복하지는 않지만 그것이 더 이상 사용되지 않는지 기억하지는 않는다는 것을 상기하는 듯하다. – Potatoswatter

+0

고맙습니다. 재 설계하려는 제 아이디어가 떨어졌습니다. 비록 내가 작업하고있는 작은 프로젝트의 한 부분이다. 기본적으로 그 프로젝트에서, 나는 C로 R 라이브러리를 만들고, 그렇게 라이브러리를 사용하여 데이터 세트에 통계 함수를 수행한다. –