저는 CPU에 민감한 응용 프로그램을 가지고 있으며 함수 호출을 최소화하려고합니다. 나는 다음과 같이 쓰고 싶다 :C++ # 가변 매개 변수 함수를 정의하십시오.
#ifdef condition
#define f(a,b) ff(a,b)
#define f(a) ff(a)
#endif
그러나 컴파일러는 f가 여러 번 정의 된 것으로 간주한다. __VAR_ARGS__
을 사용하고 싶지만 위의 예에서 b
은 enum
유형입니다. 적절한 방법이 있습니까 아니면 f(a,b)
을 f2(a,b)
으로 바꿔야합니까?
정의를 명확히하려면 파일/stdout에 인쇄 할 데이터를 처리하는 함수에 대한 호출을 추가하십시오. 그렇지 않으면 빈 줄로 바뀝니다. 따라서이 방법은 코드 크기를 향상시키고 매크로는 단일이기 때문에 INFO(object->contents)
과 같은 온라인 키워드는 더 읽기 쉽습니다. 또한 WARN("message")
과 WARN("value is",obj->printvalue())
과 같은 것을 추가 할 수 있다면 유용했을 것입니다.
나는 또한 inline
(아래 답변에서) 트릭을 할 것이라고 생각합니다.
허 ... 무슨 ...? –
궁금한데 어떻게 함수 호출을 최소화합니까? – StoryTeller
@StoryTeller 나는 OP가'ff'에게 위임 한'f'에 대한 호출이 없다는 것을 의미한다고 가정합니다. – Angew