헤더 파일에 #define
이 있으면이 헤더를 포함하는 소스 코드에서 사용할 수 있습니까? [예 : #define Bytef unsigned int
]#define (preprocessor directives)가 헤더 파일에서 상속받습니다.
답변
네, 그렇게 할 수 있습니다.
imagin 당신이 파일을 다음과 같이
이 작품을 포함한다.
header.h
내용 :
void HappyMakerPrototype();
void AnotherPrototype();
및 소스 파일
src.c
내용 :이 전처리를 통해 실행됩니다 컴파일의 첫 번째 단계에서
void dummydec();
#include "header.h"
void main()
{
return;
}
.
여기에 포함 된 줄은 포함 된 파일의 모든 내용으로 바뀝니다.
그래서 당신은 전처리 된 파일의 출력을 요청한다면 것처럼 보일 것 :
가(GCC와 그 소리 컴파일러에 당신은 내가 그건 당신이 이해하는 도움이 될 것 같아요 매개 변수 -E
와 전처리 된 파일을 요청할 수 있습니다)
void dummydec();
void HappyMakerPrototype();
void AnotherPrototype();
void main()
{
return;
}
downvote 주셔서 감사합니다. 너는 그렇게 공정하고 나에게 이것으로 잘못된 것이 맞을 까? 나는 지식과 포스트를 향상시키고 싶다. – dhein
이것은 잘못되었습니다. 전 처리기가 완료된 후'# define's가 출력되지 않습니다. 모든 전 처리기 지시문은 전처리 기가 처리합니다. 'gcc -E'로 테스트하면 이것을 확인할 수 있습니다. – unwind
@unwind. 나는 "첫 실행"에 대해 더 잘 보여주기 위해 무슨 일이 일어나는지 보여줍니다. 나는 그들이 결과물에있을 것이라고 결코 말하지 않았다. 나는 그것을 분명히 할 것이다. – dhein
예 할 수 있습니다. 해당 헤더 파일을 포함하는 동안 헤더에서 모든 것을 상속받습니다. 그래서 당신은 그 매크로를 사용할 수 있습니다.
예. 파일 포함은 #include
지시문과 정확히 일치하는 위치에서 헤더 파일의 내용을 복사하여 붙여 넣는 것과 같습니다.
- 1. "preprocessor define"으로 인한 재 컴파일 .h
- 2. C++ 헤더 타입 #define 기능을
- 3. 헤더 파일에서 함수 호출
- 4. BeanShell PreProcessor
- 5. 헤더 파일에서 변수 호출하기
- 6. Tricking Preprocessor GCC의 VARIADIC MACROS
- 7. 헤더 파일에서
- 8. css가 child propeties를 상속받습니다.
- 9. 헤더 파일에서 선언 사용
- 10. 헤더 파일의 선언 및 #define 순서가 우선적입니다.
- 11. Visual Studio "hidden"preprocessor defintion
- 12. Yii는 attributeLabels를 상속받습니다.
- 13. #DEFINE (CLASS)은
- 14. 크기 size_t preprocessor 값
- 15. Java Preprocessor Check OS
- 16. The Define of new
- 17. #DEFINE,
- 18. #DEFINE
- 19. #define
- 20. WARC.gz 파일에서 헤더 추출하기
- 21. 동적 헤더 파일에서 C
- 22. 헤더 파일에서 #ifdef 검색
- 23. 내 헤더 파일에서 jQuery과
- 24. 요소가 잘못된 스타일을 상속받습니다.
- 25. Maven은 원격 부모로부터 상속받습니다.
- 26. JavaScript가 객체 값을 상속받습니다.
- 27. wpf에서 테마의 스타일을 상속받습니다.
- 28. 많은 뷰가 templateview에서 상속받습니다.
- 29. 이미지의 너비를 상속받습니다. (CSS)
- 30. Node.js가 로컬 변수를 상속받습니다.
이것은 좋은 질문이 아닙니다. 왜 물어 봤어? 너 해봤 니? –
@SouravGhosh 버그를 고치려고합니다. zlib의 changelog에서 정의 된 typedef를 찾았습니다. 그래서 우리는 소스에 "정의"를 추가해야하기 때문에 변경이 정의 된 것으로 생각했습니다. 나는 상속을 정의하고 결과를 찾을 수 없다는 구글을 시도했다. 그래서 나는 묻어야한다고 생각했다. –
전 처리기는 포함 된 파일의 내용으로'# include' 지시자를 대체 할 것이다. 전처리 된 소스를 얼마 동안 보려고하는 것이 좋습니다. –