stdint.h

stdint.h ヘッダーは、整数型、指定幅整数型の限界、その他の整数型の限界、および整数定数式用のマクロを定義します。

注: 厳密幅整数型、最小幅整数型、および指定幅整数型の限界に対するビット・サイズ N の値としては、8、16、32、および 64 をサポートしています。
次の厳密幅整数型が定義されています。
次の最小幅整数型が定義されています。
次の最速最小幅整数型が定義されています。 これらの型の演算は、指定された値以上の幅をもつ整数型すべての中で最も高速です。
次の最大幅整数型が定義されています。 これらの型は、任意の符号付き/符号なし整数型の値を格納します。
注: long long が使用可能であることが必要です。
オブジェクト・ポインターの格納が可能な次の整数型が定義されています。

整数型の限界を表すオブジェクト類似マクロ: stdint.h ヘッダーによって提供される追加のオブジェクト類似マクロについて説明します。

注: 厳密幅整数の限界、最小幅整数の限界、および指定幅整数型の限界に対するビット・サイズ N の値としては、8、16、32、および 64 をサポートしています。
厳密幅整数型の限界を表すマクロ
最小幅整数型の限界を表すマクロ
最速最小幅整数型の限界を表すマクロ
最大幅整数型の限界を表すマクロ
注: long long が使用可能であることが必要です。
ポインター整数型の限界を表すマクロ
ptrdiff_t の限界を表すマクロ
sig_atomic_t の限界を表すマクロ
size_t の限界を表すマクロ
wchar_t の限界を表すマクロ
wint_t の限界を表すマクロ

整数定数を表す関数類似マクロ: stdint.h ヘッダーによって提供される追加の関数類似マクロについて説明します。

注: 次に示す、最小幅整数定数を表すマクロに対するビット・サイズ N の値としては、8、16、32、および 64 をサポートしています。
最小幅整数定数を表すマクロ
例:
#define _ISOC99_SOURCE
#include <inttypes.h>      
#include <stdio.h>        
                                
                                
 int main(void)                 
 {                              
   uint32_t a = UINT32_C(1234); 
   printf("%u¥n",a );
                                
 }                              
            
出力:

1234
コンパイラーがマクロをどのように展開するかを示す例:
|     uint32_t a = UINT32_C(1234); 
+     uint32_t a = 1234U;          
最大幅整数定数を表すマクロ
注: long long が使用可能であることが必要です。

例:

/* long long required */
#define _ISOC99_SOURCE
#include <inttypes.h>      
#include <stdio.h>        
                                
                                
 int main(void)                 
 {                              
   intmax_t a = INTMAX_C(45268724); 
   printf("%jd¥n",a );
                                
 }                                                            
            
出力:

45268724
次の例は、LP64 コンパイラー・オプションを指定した場合に、コンパイラーがマクロをどのように展開するかを示しています。
| intmax_t a = INTMAX_C(45268724);
+ intmax_t a = 45268724L;                    
それ以外の場合、コンパイラーは次のように展開します。
| intmax_t a = INTMAX_C(45268724);
+ intmax_t a = 45268724LL;