반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 티스토리챌린지
- 오라클
- DBMS
- 오블완
- 프로그래밍언어론
- Spring
- sql
- jenkins
- 스프링부트 웹 소켓
- JPA
- swift
- 스프링
- springboot
- Xcode
- libasm
- javascript
- IOS
- AI
- 인공지능
- CI
- 스프링부트
- 42seoul
- 소켓
- 아이패드다이어리
- 데이터베이스
- MySQL
- 리눅스
- 네트워크
- 다이어리
- CD
Archives
- Today
- Total
Hi yoahn 개발블로그
[C] 가변인자 본문
반응형
C에서 가변인자 함수를 정의하는 방법
void func(int num_args, ...)
# 주의 사항
최소 1개 이상의 고정 인수가 있어야 하며, '...' 은 매개변수 가장 마지막에 위치해야 한다.
1. 가변인수를 사용하기 위한 매크로
- va_list
가변인자를 저장하려면 가변 저장공간이 필요하다. va_list 라는 타입이 가변공간의 타입이 된다.
va_list ap;
=> 여러 인수를 저장하는데 쓰일 타입을 선언하는 코드가 된다.
1) void va_start(va_list ap. last);
: va_list 를 초기화하는 역할
=> va_start를 사용하기 전에 va_list 타입이 이전에 선언되어 있어야 한다.
- va_list (ap) : va_list 타입의 변수인 ap를 초기화
- last : 첫번째 가변인자 주소를 알려면 고정인수가 필요하기 때문에 받음
ap = va_list의 주소 값 + 고정인수 크기를 더한 위치
2) type va_arg(va_list ap, type);
: ap 포인터가 위치한 부분의 데이터를 읽어 반환. (읽은 후 ap 포인터를 타입 길이만큼 뒤로 옮기기 때문에 그 다음 값이 이어서 출력될 수 있다)
3) void va_copy(va_list dest, va_list src);
: 현재 상태의 인수 목록에 대한 복사본을 생성
4) void va_end(va_list ap);
: va_list 타입을 널로 초기화
ref.
[C,C++] 가변인자 함수의 사용(va_start, va_arg, va_list등등) 함수에 불특정 여러개의 인자를 넘기고 싶
[C, C++ 프로그래밍 강좌 목차] 안녕하세요~ 양햄찌 주인장입니다. 오늘은 오랜만에 프로그래밍 언어에 관련된 포스팅을 들고왔어요. 오늘의 주제 포스팅을 들어가기 전 'C++의 오버로딩'에 대한
jhnyang.tistory.com
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C/C++] dangling pointer (0) | 2021.03.18 |
---|---|
NULL, 0, '\0', "" 차이점 (0) | 2021.03.18 |
파일 입출력 (0) | 2020.03.27 |
Comments