c언어에서 오버로딩은 허용하지 않는거 같은데
void func(a, b) { } 이런식으로 함수가 있다고 하면
b의 값이 int, long, long 등 여러가지가 올수가 있습니다.
이걸 구현할 방법이 있을까요??
조언 부탁드립니다.
b 를 void * 로 받으면, 함수 안에서 다양하게 casting 해서 쓸 수는 있습니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
https://stackoverflow.com/questions/479207/how-to-achieve-function-overloading-in-c
뭐, printf 같이, 함수에 타입을 같이 받는 방법이나 struct + union 조합으로 하기도 하고 #define으로 처리 하기도 하고.. 다양한 방법들을 유저들이 공유하고 있네요
위에 답변들처럼 유사하게 구현은 가능합니다만, 그 전에 왜 이게 필요하다고 생각하는지 고민해 보시기 바랍니다.
아마 이부분에 대해서 가장 좋은 개념은 아마 Generic일겁니다 https://blog.naver.com/fb_lua/221189874155 이 블로그 강의 한번 살펴보세요
C11이 허용이 된다면, 위 기능을 구현하는 가장 간단한 방법은 _Generic입니다.
https://en.cppreference.com/w/c/language/generic
user-defined type 까지 고려를 하신다면 #define이 무난합니다. 그런데 이 방식은 디버깅이 까다롭습니다.
--------------- Happy Hacking!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
음 ..
b 를 void * 로 받으면, 함수 안에서 다양하게 casting 해서 쓸 수는 있습니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
참고 해 보세요
https://stackoverflow.com/questions/479207/how-to-achieve-function-overloading-in-c
뭐, printf 같이, 함수에 타입을 같이 받는 방법이나
struct + union 조합으로 하기도 하고
#define으로 처리 하기도 하고..
다양한 방법들을 유저들이 공유하고 있네요
위에 답변들처럼 유사하게 구현은 가능합니다만, 그
위에 답변들처럼 유사하게 구현은 가능합니다만, 그 전에 왜 이게 필요하다고 생각하는지 고민해 보시기 바랍니다.
템플릿
아마 이부분에 대해서 가장 좋은 개념은 아마 Generic일겁니다
https://blog.naver.com/fb_lua/221189874155
이 블로그 강의 한번 살펴보세요
C11이 허용이 된다면, 위 기능을 구현하는 가장
C11이 허용이 된다면, 위 기능을 구현하는 가장 간단한 방법은 _Generic입니다.
https://en.cppreference.com/w/c/language/generic
user-defined type 까지 고려를 하신다면
user-defined type 까지 고려를 하신다면 #define이 무난합니다. 그런데 이 방식은 디버깅이 까다롭습니다.
---------------
Happy Hacking!
댓글 달기