«c-preprocessor» 태그된 질문

C 및 C ++ 언어 프로그램을 컴파일하기 전에 텍스트 매크로 프로세서가 적용되었습니다. 이 태그는 Objective-C 또는 C #의 #directives와 같이 동일한 기능을 가진 다른 컴파일러 / 언어에 대한 질문에도 사용할 수 있습니다.



9
매크로에서 분명히 의미없는 do-while 및 if-else 문을 사용하는 이유는 무엇입니까?
많은 C / C ++ 매크로에서 의미없는 do while루프 처럼 보이는 매크로 코드를보고 있습니다. 다음은 예입니다. #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else 나는 무엇을하고 있는지 알 수 없습니다 do while. 그것없이 이것을 쓰지 않겠습니까? #define FOO(X) f(X); g(X)
787 c++  c  c-preprocessor  c++-faq 


3
강사가 작성한 모든 C 파일이 첫 번째 줄에서 단일 #으로 시작하는 이유는 무엇입니까?
나는 C 코스 노트를 겪을 것이고, 모든 C 프로그램 소스 파일은 프로그램 #의 첫 줄 에서 단일로 시작 합니다. 그런 다음 빈 줄이 있고 그 뒤에 다른 main기능이 뒤 따릅니다 . 이유는 무엇입니까 #? (지금은 기한이 지났고 실제로 그 장을 요청할 수는 없습니다.) 예를 들면 다음과 같습니다. # #include <stdio.h> …
431 c  c-preprocessor 

4
C ++와 C 결합-#ifdef __cplusplus는 어떻게 작동합니까?
레거시 C 코드 가 많은 프로젝트를 진행 중입니다 . 우리는 결국 레거시 코드를 변환하려는 의도로 C ++로 작성하기 시작했습니다. C 와 C ++의 상호 작용 방식에 대해 약간 혼란스러워합니다 . 나는 포장하여 해당 이해 C를 사용하여 코드를 extern "C"망글하지 않습니다 컴파일러 ++은 C 의 C 코드의 이름을,하지만 난 완전히 확인이 …

14
C에서 MIN과 MAX
C에서 어디에 MIN있고 MAX정의되어 있습니까? 일반적으로 가능한 한 안전하게 입력하는 가장 좋은 방법은 무엇입니까? (주류 컴파일러를위한 컴파일러 확장 / 내장 선호)
299 c  max  min  c-preprocessor 


6
GCC 덤프 전 처리기 정의
На этот вопрос есть ответы на 스택 오버플로 на русском : Как узнать список всех определённых макросов? gcc / g ++가 명령 행에서 프리 프로세서 정의를 덤프하는 방법이 있습니까? 같은 I 평균 것들 __GNUC__, __STDC__등.
248 gcc  g++  c-preprocessor 

11
#pragma pack 효과
누군가가 #pragma pack전 처리기 명령문이 무엇을하는지, 더 중요하게는 왜 그것을 사용하기를 원하는지 설명 할 수 있는지 궁금 했습니다. 나는 약간의 통찰력을 제공 하는 MSDN 페이지를 체크 아웃 했지만 경험이있는 사람들로부터 더 많은 것을 듣기를 희망했습니다. 더 이상 어디에서 찾을 수 없지만 코드에서 이전에 보았습니다.

12
C에서 디버그 인쇄를위한 #define 매크로?
다음 의사 코드와 같이 DEBUG가 정의 될 때 인쇄 디버그 메시지에 사용할 수있는 매크로를 작성하려고합니다. #define DEBUG 1 #define debug_print(args ...) if (DEBUG) fprintf(stderr, args) 매크로로 어떻게이 작업을 수행 할 수 있습니까?
209 c  c-preprocessor 


5
가변성 매크로를 만드는 방법 (가변 인수 수)
특정 숫자가 아닌 임의의 수의 매개 변수를 허용하는 매크로를 C로 작성하고 싶습니다. 예: #define macro( X ) something_complicated( whatever( X ) ) X매개 변수의 수는 어디 입니까? whatever과부하되어 2 또는 4 매개 변수로 호출 할 수 있기 때문에 이것이 필요합니다 . 매크로를 두 번 정의하려고했지만 두 번째 정의가 첫 번째 …



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.