산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C - 변수 인수

때로는 미리 정의된 수의 매개변수 대신 다양한 수의 인수, 즉 매개변수를 사용할 수 있는 함수를 갖고자 할 때 상황이 발생할 수 있습니다. C 프로그래밍 언어는 이러한 상황에 대한 솔루션을 제공하며 요구 사항에 따라 다양한 수의 매개변수를 허용할 수 있는 함수를 정의할 수 있습니다. 다음 예는 이러한 함수의 정의를 보여줍니다.

int func(int, ... ) {
   .
   .
   .
}

int main() {
   func(1, 2, 3);
   func(1, 2, 3, 4);
}

func() 함수는 마지막 인수가 타원으로 되어 있습니다. 즉, 세 개의 점(... ) 그리고 타원 바로 앞의 것은 항상 int입니다. 전달된 총 변수 인수를 나타냅니다. 이러한 기능을 사용하려면 stdarg.h를 사용해야 합니다. 가변 인수의 기능을 구현하고 주어진 단계를 따르기 위한 함수와 매크로를 제공하는 헤더 파일 -

이제 위의 단계를 따라 가변 개수의 매개변수를 사용하여 평균을 반환할 수 있는 간단한 함수를 작성해 보겠습니다. -

라이브 데모
#include <stdio.h>
#include <stdarg.h>

double average(int num,...) {

   va_list valist;
   double sum = 0.0;
   int i;

   /* initialize valist for num number of arguments */
   va_start(valist, num);

   /* access all the arguments assigned to valist */
   for (i = 0; i < num; i++) {
      sum += va_arg(valist, int);
   }
	
   /* clean memory reserved for valist */
   va_end(valist);

   return sum/num;
}

int main() {
   printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5));
   printf("Average of 5, 10, 15 = %f\n", average(3, 5,10,15));
}

위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 나온다. average() 함수는 두 번 호출되었으며 매번 첫 번째 인수가 전달되는 변수 인수의 총 수를 나타냅니다. 가변 개수의 인수를 전달하는 데는 줄임표만 사용됩니다.

Average of 2, 3, 4, 5 = 3.500000
Average of 5, 10, 15 = 10.000000

C 언어

  1. C 프로그래밍의 사용자 정의 함수 유형
  2. C 스토리지 클래스
  3. C의 함수에 배열 전달
  4. 파이썬 함수 인수
  5. C++ 변수 및 유형:int, double, char, string, bool
  6. C 변수, 데이터 유형, 상수
  7. Verilog 할당
  8. C - 변수
  9. C - 기능
  10. C - 포인터