当前位置: C语言 -- 标准库 -- <stdint.h> -- INTN_C

INTN_C宏


概要:

#define INTN_C(valuevalue


描述:

该宏是函数式宏,扩展为对应的int_leastN_t类型整数常量表达式,例如:如果int_least64_t是整数类型long long int的类型名,INT64_C(0x123)可能会扩展为整数常量0x123LL

该宏的实参应是无后缀的整数常量,其值不超过相应类型的表示范围;实参的值也是整个表达式的值。

具体实现中,该宏应替换为适合在#if预处理指令中使用的常量表达式,并且该表达式应具有与相应类型(整数提升后)相同的类型。


参数:
value

整数类型值。


返回值:

该宏返回参数value的值。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
/*宏INTN_C范例*/

#include <stdint.h>
#include <stdio.h>

int main(void)
{
    printf("INT8_C(125) = %d\n", INT8_C(125));
    printf("INT16_C(125) = %d\n", INT16_C(125));
    printf("INT32_C(125) = %d\n", INT32_C(125));
    printf("INT64_C(125) = %lld\n", INT64_C(125));

    return 0;
}


输出:

INT8_C(125) = 125

INT16_C(125) = 125

INT32_C(125) = 125

INT64_C(125) = 125

GCC编译器<stdint.h>头文件中宏INTN_C定义如下:

#define INT8_C(val) val

#define INT16_C(val) val

#define INT32_C(val) val

#define INT64_C(val) val##LL

根据这个定义,上述4个宏分别扩展为常量表达式125125125125LL


相关内容:
UINTN_C 表示扩展为uint_leastN_t类型整数常量表达式的宏。