ANSI C (나는 C99 확실하지 않습니다) 함수 오버로드를 허용하지 않습니다. 예
:
char max(char x, char y);
short max(short x, short y);
int max(int x, int y);
float max(float x, float y);
유효한 ANSI C의 소스 코드 아니다.
ANSI C의 함수 오버로딩 문제에 어떤 기술 (또는 아이디어)을 사용해야합니까?
주 :
는 대답이 기능을 이름을 변경하지만, 어떤 패턴은 이름 변경을 위해 사용되어야한다, 그 함수 이름은 '좋은 함수 이름' 남아? 예를 들어
:
char max1(char x, char y);
short max2(short x, short y);
int max3(int x, int y);
float max4(float x, float y);
은 좋은 이름에 대한 max
기능 이름이 아닙니다. 데이터 유형을 사용
아마도 '최대'매크로를 정의 할 수 있습니까? ;-) –
@DidierTrosset : 최대 값은보기에 지나지 않지만 이미지는 매우 복잡한 함수입니다. –
함수 오버로딩이 중요하다면 아마도 C 대신 C++을 사용할 것을 고려해야 할 것입니다. –