인터페이스"C

S

soniya_ahuja

Guest
쿼리 C에서사람은 어떤 장점과 단점은 매크로의 말씀 좀 해주 시겠어요?또한 malloc 사이의 주요 차이점은 calloc 알고 거짓말을 하겠어요.

하나 더 질문 -

당신이 입력으로 무기한 매개 변수를 가질 수 함수를 정의할 수있습니다?

감사합니다
안부
Soniya

 
지금은 당신이 마지막으로 질문에 대답 수있습니다.
우리는 무기한 입력 매개 변수가 함수를 정의할 수있습니다.
우리가 머리를 stdarg.h 파일이 정의된 stdarg 매크로를 사용하여이 문제에 대한.이 머리를 파일 -, va_start va_arg va_end를 입력 va_list 3 매크로를 정의하고있다.우리는, va_list 타입의 varibale 선언할 수있는 세 가지 매크로와 매개 변수에 액세스합니다.

/ *
값을 지정된 숫자의 평균 계산 **.
* /

# 포함 <stdarg.h>

플로트
평균 (int n_values, ...)
(
va_list var_arg;
int 카운트;
형님 = 0 플로트;

/ *
가변 인자에 액세스할 준비 **.
* /
va_start (var_arg n_values);

/ *
변수 인수 목록에서 값을 추가합니다 **.
* /
(계산을위한 = 0; 계산 "n_values; 개수 = 1) (
합계 (var_arg, int) va_arg =;
)

/ *
** 가변 인자 처리 끝.
* /
va_end (var_arg);

반환 합계 / n_values;
)모든이의 <pointers에 참조할 수있습니다 c> 케네스 대답 악취 챕터 7.6니다.

() 불쌍한 내 영어 용서

 
malloc 크기의 블록을 메모리에서 지정된 할당합니다.프로그램은 명확하게 그것에 필요한 메모리를 할당할 수있습니다.

성공 malloc에서 새로 할당된 메모리 블록에 대한 포인터를 반환

Calloc 오히려 그것이 어떤 할당 크기와 크기 n_items * 크기의 블록을 할당하고 두 번째 인수 size_t와 곱한 값입니다 하나 더 인수 n_items 소요 malloc과 비슷합니다.

또한 0이 malloc에 의해 수행되지 않습니다 모든 위치를 초기화합니다.

참고 : calloc 크기 개까지 64K 할당에 대한 할당을위한 64K 넘어, 당신 farcalloc를 사용하는 데 사용될 수있습니다.

 

Welcome to EDABoard.com

Sponsor

Back
Top