본문 바로가기

Variable Arguments

파이썬 가변인자 함수 사용 가변인자 함수는 함수가 몇 개의 인자를 받을지 정해지지 않은 함수입니다.파이썬에서는 가변인자 함수를 지원하고 있습니다.C++에도 가변인자 함수를 구현하고 있는데 아래 링크에서 내부 구조를 확인할 수 있습니다.2014/12/07 - [Programming/C&C++] - 가변 인자(Variable Arguments) 내부 구조파이썬에서는 가변인자를 받을 때 *을 붙여서 받습니다.다음과 같이 입력받는 숫자의 개수와 상관없이 합을 구할 수 있는 함수를 만들 수 있습니다. def sum_all(*args): result = 0 for i in args: result += i return result print(sum_all(1, 2, 3, 4, 5)) print(sum_all(1, 2, 3, 4, 5, 6, 7.. 더보기
가변 인자 함수의 사용법(vprintf, vsprintf) 가변 인자 함수의 내부 구조에 이어서 가변 인자 함수의 사용법을 보도록 하겠습니다.가변 인자 함수의 내부 구조는 다음과 같은 링크에서 확인이 가능합니다.2014/12/07 - [Programming/C&C++] - 가변 인자(Variable Arguments) 내부 구조printf와 유사한 형식으로 문자를 조립해 주는 다음과 같은 함수가 존재합니다.int __cdecl vprintf(const char * _Format, va_list _ArgList); int __cdecl vsprintf(char * _Dest, const char * _Format, va_list _Args);vprintf는 printf와 유사한 동작 방식이고 vsprintf는 sprintf와 유사한 동작 방식입니다.다음의 소스 코.. 더보기
가변 인자(Variable Arguments) 내부 구조 가변 인자 함수는 printf 같이 인자의 형식이나 수가 정해지지 않은 형식의 함수입니다. 제가 예전에 함수 호출 규약을 설명하면서 __cdecl로 호출되는 함수는 가변 인자 함수 호출 방식이라고 설명을 드리면서 호출하는 쪽에서 스택을 정리한다고 했습니다. 이유는 호출당하는 함수에서는 몇 개가 넘어오는 지 알 수가 없기 때문입니다. 혹시 모르시는 분들은 아래 링크를 확인해주세요.2014/11/25 - [Programming/C&C++] - Calling Convention(함수 호출 규약)가변 인자 함수는 말그대로 인자를 변경 가능할 수 있다는 의미입니다. 가장 자주 사용하게 되는 것은 printf류의함수가 아닐까 생각됩니다. Visual Studio에서 printf를 입력해 보았습니다. const ch.. 더보기