«c-preprocessor» 태그된 질문

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

19
#ifdef vs #if-특정 코드 섹션의 컴파일을 활성화 / 비활성화하는 방법으로 더 나은 / 안전한 방법은 무엇입니까?
이것은 스타일의 문제 일 수 있지만, 개발 팀에 약간의 차이가있어서 다른 사람이이 문제에 대해 아이디어가 있는지 궁금했습니다 ... 기본적으로 정상적인 개발 중에 꺼지는 디버그 인쇄 문이 있습니다. 개인적으로 다음을 선호합니다. //---- SomeSourceFile.cpp ---- #define DEBUG_ENABLED (0) ... SomeFunction() { int someVariable = 5; #if(DEBUG_ENABLED) printf("Debugging: someVariable == %d", someVariable); #endif …

3
clang을 감지하는 데 사용할 수있는 사전 정의 된 매크로는 무엇입니까?
내 소스 코드를 컴파일하는 데 사용되는 컴파일러를 감지하려고합니다. MSVC 또는 GCC ( 예 : http://predef.sourceforge.net/ 참조)를 확인하기 위해 미리 정의 된 매크로를 쉽게 찾을 수 있지만 clang을 확인할 매크로를 찾을 수 없습니다. clang __CLANG__이 현재 내 코드를 컴파일하고 있는지 알기 위해 매크로가 매크로를 정의하는지 누군가 알고 있습니까?


10
C / C ++ 줄 번호
디버깅 목적으로 C / C ++ 컴파일러 에서 줄 번호를 얻을 수 있습니까? (특정 컴파일러에 대한 표준 방식 또는 특정 방식) 예 : if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber without writing it by my hand?(dynamic compilation)

6
gcc는 전처리 후 C 코드를 출력 할 수 있습니까?
C 이외의 많은 언어를 지원하기 위해 많은 사전 처리 지시문이있는 것처럼 보이는 오픈 소스 라이브러리를 사용하고 있습니다. 라이브러리가 무엇을하는지 연구 할 수 있도록 사전 처리 후 컴파일하는 C 코드를보고 싶습니다. , 내가 쓰는 것과 더 비슷합니다. gcc (또는 Linux에서 일반적으로 사용할 수있는 다른 도구)가이 라이브러리를 읽을 수 있지만 전처리가 무엇이든 …

7
C / C ++ 매크로의 쉼표
이와 같은 매크로가 있다고 가정 해 보겠습니다. #define FOO(type,name) type name 다음과 같이 사용할 수 있습니다. FOO(int, int_var); 그러나 항상 그렇게 간단하지는 않습니다. FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 물론 우리는 할 수 있습니다 : typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // …
103 c++  c  macros  c-preprocessor 

11
C의 매크로 대 기능
나는 항상 매크로를 사용하는 것이 함수를 사용하는 것보다 나은 예와 사례를 보았습니다. 누군가 함수에 비해 매크로의 단점을 예로 설명해 줄 수 있습니까?

8
Xcode에서 전 처리기 기호를 정의하는 방법
Xcode 프로젝트에서 속성을 설정하여 조건부 컴파일에 대한 기호를 설정할 수 있습니까? 내 목표는 가져 오기 / 포함을 사용하지 않고도 모든 파일에 사용할 수있는 심볼을 만들어 공통 클래스 집합이 일부 프로젝트에서 특별한 동작을 가질 수 있도록하는 것입니다. 다음과 같지만 내 기호가 있습니다. #if TARGET_IPHONE_SIMULATOR ... #endif

4
#ifdef 및 #ifndef의 역할
#define one 0 #ifdef one printf("one is defined "); #ifndef one printf("one is not defined "); 여기서 #ifdef및 의 역할은 무엇이며 #ifndef출력은 무엇입니까?

8
들여 쓰기 #defines
#defines 등은 일반적으로 들여 쓰기되지 않는다는 것을 알고 있습니다. 왜? 나는 현재 #defines, #ifdefs, #elses, #endifs 등 의 끔찍한 혼합이있는 일부 코드에서 작업하고 있습니다 .이 모든 것들은 종종 일반 C 코드와 섞여 있습니다. #defines를 들여 쓰지 않으면 읽기가 어렵습니다. 그리고 들여 쓰기 된 코드와 들여 쓰기되지 않은 #defines 의 혼합은 …

12
C ++ 전 처리기 __VA_ARGS__ 인수 개수
인터넷에서 답을 찾을 수 없었던 간단한 질문입니다. 가변 인수 매크로에서 인수 수를 찾는 방법은 무엇입니까? 해결책이 있다면 부스트 전처리기로 괜찮습니다. 차이가 나는 경우 추가 재 처리를 위해 전 처리기 시퀀스, 목록 또는 배열을 향상시키기 위해 가변 개수의 매크로 인수를 변환하려고합니다.


4
매크로 정의의 pragma
pragma 문을 다른 문과 함께 매크로에 포함하는 방법이 있습니까? 나는 다음과 같은 것을 달성하려고 노력하고 있습니다. #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type 부스트 솔루션 (웨이브 용으로 저장)이 있으면 괜찮습니다.

14
Xcode 4 (및 종속성)로 문제 컴파일, 빌드 또는 아카이브
이 질문은 더 일반적인 문제를 다루기 위해 지난 몇 주 동안 발전했습니다. xcode4 (그리고 업그레이드 프로젝트는 오래된 xcode에스). 그러나 동일한 지침을 따르면 많은 문제를 해결할 수 있습니다. 다음과 같은 문제가있는 경우 수락 된 답변의 방법을 시도해보십시오. Xcode 4가 앱을 보관하지 못함 Xcode 4는 사용할 수없는 아카이브를 만듭니다. Xcode 4는 .ipa를 …

8
전 처리기 매크로가 왜 사악하고 대안은 무엇입니까?
나는 항상 이것을 물었지만 정말 좋은 대답을받지 못했습니다. 나는 첫 번째 "Hello World"를 작성하기 전에 거의 모든 프로그래머가 "매크로는 절대 사용해서는 안된다", "매크로는 악하다"와 같은 문구를 접했다고 생각합니다. 내 질문은 다음과 같습니다. 왜? 새로운 C ++ 11을 사용하면 수년이 지난 후에 진정한 대안이 있습니까? 쉬운 부분은 #pragma플랫폼 #pragma once에 따라 …

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