gpt4 book ai didi

c - 我想明确了解打印类型

转载 作者:行者123 更新时间:2023-11-30 21:46:05 25 4
gpt4 key购买 nike

打印类型,如 %s、%d、%x、%p、...我大致了解了这些事情。但当我必须选择其中之一时,我无法选择其中相似的两个。例如,当我尝试打印变量的地址时,我可以使用%p或%08X,在特殊情况下它们肯定会有所不同。我想知道这些打印类型的定义,以便做出合理的决定。我找不到任何 C 标准资源。

最佳答案

您的格式说明符必须与您要打印的值的类型相匹配。

%p 需要一个 void *

%x 需要一个 unsigned int

%lx 需要一个 unsigned long

这记录在 man 3 printf 中。

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

int main(void) {
const char *s = "foo";
printf("%p\n", s);
printf("%s\n", PRIxPTR);
printf("%#" PRIxPTR "\n", (uintptr_t)s);
}

输出:

$ gcc -Wall -Wextra -pedantic -std=c99 a.c -o a && a
0x5b72da1774
lx
0x5b72da1774

PRIxPTR 将类似于 x。就我而言,它是 lx,因为指针的大小与 unsigned long 相同。

关于c - 我想明确了解打印类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59573246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com