logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

C 에서 Overloading 구현

by digipine posted Nov 01, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
순수 C언어로 SDK를 작성하고 있는데 함수의 오버로딩 문제가 생겨서 자료를 찾아보니
다음과 같은 방법이 있더군요.
 
그런데 좀 인자의 형식을 인자로 포함해야되는 것이 좀 마음에는 들지않네요.
 
#include <stdarg.h>
#include <stdio.h>
 
void func_1 (double f) { printf ("f = %f\n", f); }
void func_2 (int i) { printf ("i = %d\n", i); }
void func_3 (char *s) { printf ("s = %s\n", s); }
 
void func (int usage, ...)
{
    va_list ap;
    va_start (ap, usage);
 
    switch (usage)
    {
        case 1: func_1 (va_arg (ap, double)); break;
        case 2: func_2 (va_arg (ap, int)); break;
        case 3: func_3 (va_arg (ap, char *)); break;
        defaultprintf ("huh?\n"); break;
    }
}
 
int main (void)
{
    func (1, 1.0);
    func (2, 2);
    func (3, "three");
    func (4, 40);
    return 0;
}
TAG •

List of Articles
No. Subject Author Date Views
23 소켓 통신을 이용한 HTTP 서버 개발 강의록 file digipine 2020.08.01 1482
22 [shared lib] so 동적 라이브러리 만들기와 사용법 - 리눅스 digipine 2017.11.01 6444
21 [linux] zlib build 방법 digipine 2017.11.01 1487
20 [Linux] Pthread 사용법, Thread 동기화 총정리 digipine 2017.11.01 294515
19 [C/C++] 현재시간 구하기 digipine 2017.10.28 2212
18 [C/C++] Random UUID String 생성 코드 digipine 2021.10.21 1303
17 wchar_t에 대하여 digipine 2017.11.01 7348
16 Unix C/C++ Input and Output Function Reference digipine 2017.11.01 88162
15 STL MAP 예제로 공부하기 digipine 2017.10.29 5206
14 Solaris에서 pmap을 이용하여 백그라운드 프로세스 메모리 크기 구하기 digipine 2017.10.29 28606
13 Solaris 10에 개발 Tool (gcc,vim,gdb) 설치 digipine 2017.10.29 1261
12 MD5 파일 변조 검사 관련 소스 (리눅스/Windows) digipine 2017.10.29 2613
11 make -j 옵션으로 컴파일 속도 최적화 하기 digipine 2017.11.01 2759
10 Linux C 언어로 Shell 명령어 실행하기 digipine 2017.11.01 22591
9 Introduce to Singly-linked List file digipine 2017.11.01 1288
8 fopen 파일 열기 모드 옵션 정리 digipine 2017.11.02 3894
7 C를 이용한 객체지향 프로그래밍 digipine 2017.11.01 568
6 Callback in C++ 와 Delegate 차이점 digipine 2017.11.01 2525
5 C++에서 extern의 역할, 기능 digipine 2017.10.29 2675
4 C++ 컴파일 오류(error): variable 'std::istringstream sstream' has initializer but incomplete type digipine 2017.11.02 21125
Board Pagination Prev 1 2 Next
/ 2