Table of contents
요약
C언어에서 가변길이의 배열을 파라미터로 입력받을 수 있다.
일반적인 형태는 아니지만, C언어에서 자유도를 좀 더 높여주는 역할을 한다.
일반적인 코드와 가장 큰 첫 번째 차이는 파라미터에
, ...
처럼 새로운 형태의 파라미터를 추가흐는 것이다.
두 번째는 아래 함수들을 활용하는 것이다.
va_list()
va_start()
va_arg()
아래 예시 코드를 보면 좀 더 이해를 통해 상세히 이해해보도록 하자.
예시 코드
void copyArr(uint8_t * data, uint8_t num, ...)
{
uint8_t *p;
p = data;
va_list ap;
va_start(ap, num);
for (int i = 0; i < num; i++)
{
*p = va_arg(ap, uint8_t);
p++;
}
va_end(ap);
}
void main()
{
uint8_t response[8];
uint8_t response_len;
copyArr(&response, 8, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
}
'소프트웨어 > C' 카테고리의 다른 글
'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings 에러 (0) | 2023.07.20 |
---|---|
C언어 !! 이중 부정 연산자 (0) | 2023.07.20 |
.h 파일과 .c 파일 (0) | 2023.04.16 |
C언어 배열 복사하기 배열 / memcpy / 포인터 (0) | 2022.03.11 |
C언어 구조체 선언 및 포인터 접근 예제 (0) | 2022.02.20 |