본문 바로가기
아두이노

아두이노와 가변인자 #2

by 오징어땅콩2 2020. 9. 29.
반응형

가변인자란 말그래도 인자의 개수가 정해져 있지 않다.

C++의 함수의 오버로딩과의 개념과도 다르다.

printf의 경우 함수의 인자의 개수가 정의 되어 있지 않다.

 

사실 이런식으로 코딩을 하지 않겠지만, 아래 예시는 가변인자의 기본개념이다.

인자의 개수가 정의 되어 있지 않다는거다.

 

 
#include <stdarg.h>
#include <string.h>
 
int sum(int count, ...)
{
 
    int res = 0;
    va_list ap;
    int i;
    
    va_start(ap, count);
    for(i=0; i<count; i++) res += va_arg(ap, int);
 
    va_end(ap);
    return res;
}
 
void setup() 
{
  Serial.begin(9600);
}
 
 
void loop() 
{
              
    Serial.println(sum(101,2,3,4,5,6,7,8,9,10));
    delay(1000);
}

 

댓글