void를 int나 char 형으로?
도란
2023.04.01
질문 제목 : void를 int나 char 형으로?제목과같습니다.질문 내용 :예를들어 이런함수가 있습니다.
void sort(void *base)
이 sort함수에 전달할 base는 int,string모두 가능합니다.
sort함수 내에서 이 base를 사용하려할 때 int 나 char형으로 다시 어떻게 변경할까요?
-
무들
설계가 잘못되었습니다.
오버로딩이 적합합니다.
내부에서 타입을 또 찾아야 될 바에는
애초에 그 타입으로 받도록 설계하는 것이 옳습니다. -
그루터기
씨에서는 일잔적으로 저런 테크닉을 안씁니다
입력으로 들어오는게 무엇인지 함수내에서 모르기 때문에요
그래서 매개변수에 따라 다른 함수를 만들거나해서 적절히 사용하시거나합니다 -
가온누리
c++에서 함수 오버로딩을 사용하는게 빠를듯싶긴 한데
C만으로 해결하려면 일단 포인터를 char*로 바꿔서
int형인지 string형인지 분석한 다음에
적당히 형변환해주면 될겁니다.
그런데 힘들것같은데...
함수 오버로딩 쓰거나 따로 함수를 만드시는게 좋을것같습니다.
qsort처럼 일반적으로 만드셔도 괜찮고요.