Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C의 일반 키워드?

<시간/>

매크로가 C 또는 C++에서 사용된다는 것을 알고 있지만 유형 검사를 위한 기능은 없습니다. 매크로는 모든 유형의 인수를 사용할 수 있습니다. 다음 예는 이 경우를 명확하게 보여줍니다.

예시

#include<stdio.h>
#define INCREMENT(X) ++X
main() {
   int x = 5; float y = 2.56; char z = 'A';
   printf("Integer Increment: %d\n", INCREMENT(x));
   printf("Float Increment: %f\n", INCREMENT(y));
   printf("Character Increment: %c\n", INCREMENT(z));
}

출력

Integer Increment: 6
Float Increment: 3.560000
Character Increment: B

매크로의 문제입니다. C 이후 버전에서는 '_Generic' 키워드를 사용하여 매크로를 사용할 수 있습니다. 이것을 사용하여 다른 유형의 데이터 유형을 사용하는 매크로를 정의할 수 있습니다. 한 가지 예를 살펴보겠습니다.

예시

#include<stdio.h>
#define INCREMENT(X) _Generic( (X), char: X+10, int: X+1, float: X+2.5, default: 0)
main() {
   int x = 5; float y = 2.56; char z = 'A';
   printf("Integer Increment: %d\n", INCREMENT(x));
   printf("Float Increment: %f\n", INCREMENT(y));
   printf("Character Increment: %c\n", INCREMENT(z));
}

출력

Integer Increment: 6
Float Increment: 5.060000
Character Increment: K