- C 標準庫
- C 庫 - 首頁
- C 庫 - <assert.h>
- C 庫 - <complex.h>
- C 庫 - <ctype.h>
- C 庫 - <errno.h>
- C 庫 - <fenv.h>
- C 庫 - <float.h>
- C 庫 - <inttypes.h>
- C 庫 - <iso646.h>
- C 庫 - <limits.h>
- C 庫 - <locale.h>
- C 庫 - <math.h>
- C 庫 - <setjmp.h>
- C 庫 - <signal.h>
- C 庫 - <stdalign.h>
- C 庫 - <stdarg.h>
- C 庫 - <stdbool.h>
- C 庫 - <stddef.h>
- C 庫 - <stdio.h>
- C 庫 - <stdlib.h>
- C 庫 - <string.h>
- C 庫 - <tgmath.h>
- C 庫 - <time.h>
- C 庫 - <wctype.h>
- C 標準庫資源
- C 庫 - 快速指南
- C 庫 - 有用資源
- C 庫 - 討論
- C 程式設計資源
- C 程式設計 - 教程
- C - 有用資源
C 庫 - <inttypes.h>
C 庫標頭檔案 <inttypes.h> 提供了用於格式化和處理數值資料型別(int)的各種宏。當我們使用 printf() 和 scanf() 函式時,這些宏非常有用。
庫宏
在這裡,我們將探索一些 inttypes.h 中重要的關鍵宏 -
輸出格式說明符宏 - printf() 函式
- PRIxMAX:這是 intmax_t 的 printf 說明符,等效於 %x(十六進位制)。
- PRIiMAX:這是 intmax_t 的 printf 說明符,等效於 %i(整數)。
- PRIuLEAST32:這是 uint_least32_t 的 printf 說明符,等效於 %u(無符號)。
輸入格式說明符宏 - scanf() 函式
類似於 printf() 函式,這裡有一些用於讀取輸入的宏 -
- SCNxMAX:這是 intmax_t 的 scanf 說明符,等效於 %x(十六進位制)。
- SCNiMAX:這是 intmax_t 的 scanf 說明符,等效於 %i(整數)。
- SCNuLEAST32:這是 uint_least32_t 的 scanf 說明符,等效於 %u(無符號)。
字串函式宏
以下是支援字串函式的一些宏列表 -
- strtoimax(str, endptr, base):它等效於 intmax_t 的 strtol()。
- strtoumax(str, endptr, base):它等效於 uintmax_t 的 strtoul()。
- wcstoimax(wcs, endptr, base):它等效於 intmax_t 的 wcstol()。
- wcstoumax(wcs, endptr, base):它等效於 uintmax_t 的 wcstoul()。
示例 1
以下是 C 庫標頭檔案 <inttypes.h>,它提供了一個用於列印具有固定寬度的整數值的程式。
#include <stdio.h>
#include <inttypes.h>
int main() {
int32_t num1 = 67543;
int64_t num2 = 894432590;
printf("Formatted output using inttypes.h:\n");
printf("num1: %" PRId32 "\n", num1);
printf("num2: %" PRId64 "\n", num2);
return 0;
}
輸出
執行上述程式碼後,我們將得到以下結果 -
Formatted output using inttypes.h: num1: 67543 num2: 894432590
示例 2
下面的程式使用 inttypes.h 下的 unintmax_t 計算一個數字的階乘。
#include <stdio.h>
#include <inttypes.h>
uintmax_t factorial(uintmax_t n) {
if (n == 0)
return 1;
else
return n * factorial(n - 1);
}
int main() {
uintmax_t num = 5;
printf("Factorial of %" PRIuMAX " = %" PRIuMAX "\n", num, factorial(num));
return 0;
}
輸出
執行程式碼後,我們將得到以下結果 -
Factorial of 5 = 120
示例 3
下面的程式使用 SCNu64 從使用者讀取一個 64 位無符號整數。然後使用 PRIu64 列印輸入的值。
#include <stdio.h>
#include <inttypes.h>
int main() {
uint64_t large_number = 9876543210;
printf("The entered number: %" PRIu64 "\n", large_number);
return 0;
}
輸出
上述程式碼產生以下結果 -
The entered number: 9876543210
廣告