나는 두 개의 서로 다른 선언과 함께 '계산'방법이 있습니다매크로
int calculate(int parmA);
int calculate(int parmA, int parmB, int parmC);
가 난 단지 대체 'calculateNew'를 호출 (파르마를 int)를 계산하려면 :
int calculateNew(int parmA);
나는 두 가지 방법으로 정의하여 시도했다 : 나는이 작업을 수행 할 때
#define calculate calculateNew
#define calculate(parmA) calculateNew(parmA)
내가에서 컴파일러 오류를 얻을 수 다른 수의 인수로 인한 코드의 다른 부분 :
macro "calculate" passed 2 arguments, but takes just one
여기서 내가 뭘 잘못하고 있니? 전 처리기에게 인수가 하나만있는 경우 대체하도록 어떻게 알 수 있습니까? 내가 할 수 있을까?
참고 :이 방법이이 문제에 대한 최선의 방법은 아닐 수도 있지만 이렇게해야합니다.
매크로가 작업을위한 잘못된 도구입니다. 원하는 IDE에서 리팩토링 기능을 사용하십시오. –
과부하를 제어합니까? 내 말은, 그들 중 하나의 이름을 바꾸는 것 (또는 네임 스페이스에 넣는 것)에 옵션을 쓰는 것입니까? – Angew
@remyabel 문맥을 모른 채 어떻게 그런 말을 할 수 있습니까? 리팩토링은 확실히 그 일을위한 도구가 아닙니다. 매크로는이를 수행하는 방법이 아닐 수도 있지만, 특정 조건에서 두 가지 기능을 사용하여 서로 다른 동작을 정의 할 수 있어야하며 이러한 기능 중 하나는 해당 조건이 충족 될 때 다른 기능 대신 실행됩니다. – BlunT