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
", INCREMENT(x));    printf("Float Increment: %f
", INCREMENT(y));    printf("Character Increment: %c
", 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
", INCREMENT(x));    printf("Float Increment: %f
", INCREMENT(y));    printf("Character Increment: %c
", INCREMENT(z)); }

輸出

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

更新於:2019 年 7 月 30 日

264 次瀏覽

開啟你的職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.