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
21 C++ Atomic 클래스에 대해서 file 엉뚱도마뱀 2017.12.13 214
20 C++ 컴파일 오류(error): variable 'std::istringstream sstream' has initializer but incomplete type digipine 2017.11.02 96
19 fopen 파일 열기 모드 옵션 정리 digipine 2017.11.02 135
18 make -j 옵션으로 컴파일 속도 최적화 하기 digipine 2017.11.01 108
17 [Linux] Pthread 사용법, Thread 동기화 총정리 digipine 2017.11.01 189
16 [linux] zlib build 방법 digipine 2017.11.01 71
15 Linux C 언어로 Shell 명령어 실행하기 digipine 2017.11.01 1280
14 Introduce to Singly-linked List file digipine 2017.11.01 44
13 [shared lib] so 동적 라이브러리 만들기와 사용법 - 리눅스 digipine 2017.11.01 151
12 Unix C/C++ Input and Output Function Reference digipine 2017.11.01 69
11 wchar_t에 대하여 digipine 2017.11.01 48
» C 에서 Overloading 구현 digipine 2017.11.01 53
9 C를 이용한 객체지향 프로그래밍 digipine 2017.11.01 27
8 Callback in C++ 와 Delegate 차이점 digipine 2017.11.01 99
7 Solaris에서 pmap을 이용하여 백그라운드 프로세스 메모리 크기 구하기 digipine 2017.10.29 23
6 Solaris 10에 개발 Tool (gcc,vim,gdb) 설치 digipine 2017.10.29 64
5 brute-force 알고리즘을 이용한 패턴 위치 찾기 digipine 2017.10.29 87
4 MD5 파일 변조 검사 관련 소스 (리눅스/Windows) digipine 2017.10.29 177
3 STL MAP 예제로 공부하기 digipine 2017.10.29 100
2 C++에서 extern의 역할, 기능 digipine 2017.10.29 56
Board Pagination Prev 1 2 Next
/ 2