stdarg.h 다운로드

stdarg.h는 함수가 무기한 인수를 수락할 수 있도록 하는 C 프로그래밍 언어의 C 표준 라이브러리의 헤더입니다. [1] 알 수 없는 수 및 형식의 함수 인수 목록을 단계별 기능을 제공합니다. C++는 헤더 cstdarg에서 이 기능을 제공합니다. POSIX의 오래된 버전은 C의 표준화 이전부터 날짜와 stdarg.h와 유사한 기능을 제공하는 레거시 헤더 varargs.h를 정의했습니다. 이 헤더는 ISO C나 POSIX의 일부입니다. […]

Compartir

stdarg.h는 함수가 무기한 인수를 수락할 수 있도록 하는 C 프로그래밍 언어의 C 표준 라이브러리의 헤더입니다. [1] 알 수 없는 수 및 형식의 함수 인수 목록을 단계별 기능을 제공합니다. C++는 헤더 cstdarg에서 이 기능을 제공합니다. POSIX의 오래된 버전은 C의 표준화 이전부터 날짜와 stdarg.h와 유사한 기능을 제공하는 레거시 헤더 varargs.h를 정의했습니다. 이 헤더는 ISO C나 POSIX의 일부입니다. 단일 UNIX 사양의 두 번째 버전에 정의된 대로 이 파일은 C89 stdarg.h의 모든 기능을 포함하고 있으며, 표준 C 새 스타일 정의에서는 사용할 수 없습니다. 지정된 인수를 갖지 않도록 선택할 수 있습니다(표준 C에는 하나 이상의 인수가 필요합니다);. 헤더에는 변수 인수 목록을 허용하는 이식 가능한 함수를 사용할 수 있는 매크로 집합이 포함되어야 합니다. 가변 인수 목록(예: printf()))이 있지만 이러한 매크로를 사용하지 않는 함수는 다른 시스템에서 다른 인수 전달 규칙을 사용하기 때문에 본질적으로 이식성이 없습니다.

stdarg.h 포함 파일은 가변 길이 인수 목록이 있는 함수의 인수에 액세스하는 매크로를 정의합니다. 매크로는 다음과 같습니다: stdarg.h의 내용은 일반적으로 variadic 함수에 사용되지만 variadic 함수에 의해 호출되는 다른 함수(예: vprintf)에서 사용될 수 있습니다. stdarg.h 헤더는 변수 형식 va_list 함수 의 수가 알려지지 않은 경우 함수에서 인수를 얻는 데 사용할 수 있는 세 개의 매크로를 정의합니다. varargs.h 구현 작동 방식 때문에 이전 스타일의 함수 정의가 필요합니다. [2] 반대로 이전 스타일의 함수 정의를 stdarg.h와 혼합할 수 없습니다. #include 무효 va_start (va_list ap, argN); 무효 va_copy (va_list, va_list src); 유형 va_arg (va_list ap, 유형); void va_end (va_list ap); 여러 통과, 각 va_start 의해 괄호 () … va_end())))가 가능합니다. C에서는 허용되지 않습니다(C++에서는 이러한 선언이 허용됨) C에서는 쉼표가 타원 앞에 있어야 합니다.

C++에서는 선택 사항입니다. 한 형식은 서명된 정수 유형이고 다른 형식은 해당 서명되지 않은 정수 형식이며 두 형식 모두에서 값을 나타낼 수 있습니다. IEEE Std 1003.1-2001의 시스템 인터페이스 볼륨, exec, printf() 함수 내에서 다른 var args 함수(예: 스프린트프)를 호출하려면 var arg 버전의 함수(이 예제의 vsprintf ,…)를 사용해야 합니다. va_end() 매크로는 정리하는 데 사용됩니다. va_start() 또는 va_copy()가 다시 호출되지 않는 한) ap를 무효화합니다. 또한 va_list 형식이 이 파일에 정의되어 있습니다. C99는 va_list 상태를 복제할 수 있는 추가 매크로 va_copy 제공합니다. 매크로 호출 va_copy(va2, va1)은 va1을 va2로 복사합니다. va_arg() 매크로는 ap가 가리키는 목록의 다음 인수를 반환합니다. va_arg() 각 호출은 ap를 수정하여 연속 인수의 값이 차례로 반환되도록 합니다. 형식 매개 변수는 지정된 형식이 있는 개체에 대한 포인터 의 형식을 입력할 `*`를 후부로 지정하여 얻을 수 있도록 지정된 형식 이름입니다.

실제 다음 인수가 없거나 형식이 실제 다음 인수의 형식과 호환되지 않는 경우(기본 인수 승격에 따라 승격됨) 다음 경우를 제외하고 동작은 정의되지 않습니다.