Computer >> Máy Tính >  >> Lập trình >> lập trình C

Từ khóa chung trong C?

Như chúng ta biết rằng Macro được sử dụng trong C hoặc C ++, nhưng không có cơ sở để kiểm tra kiểu. Các macro có thể nhận bất kỳ loại đối số nào trong đó. Ví dụ sau sẽ cho thấy rõ trường hợp này.

Ví dụ

#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));
}

Đầu ra

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

Đó là vấn đề của vĩ mô. Trong phiên bản C mới hơn, chúng ta có thể sử dụng macro bằng cách sử dụng từ khóa ‘_Generic’. Sử dụng điều này, chúng ta có thể xác định macro bằng cách sử dụng các loại kiểu dữ liệu khác nhau. Hãy để chúng tôi xem một ví dụ.

Ví dụ

#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));
}

Đầu ra

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