gpt4 book ai didi

c - 请问,为什么当我运行此代码时,会打印出额外的 "n"?

转载 作者:行者123 更新时间:2023-11-30 16:12:50 26 4
gpt4 key购买 nike

我正在尝试使用此代码获取 pid。但是当我运行编译的代码时。我收到一条错误消息“警告:格式指定类型“unsigned long”,但参数类型为“pid_t”(又名“int”)[-Wformat]”。

当我将格式说明符更改为“%lu”时,它打印时没有多余的字符。

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
pid_t pid = getpid();

printf("pid: %lun", pid);
}

我期望 pid 为“60316”。我得到的 pid 为“60316n”。

最佳答案

n 打印的原因与 p 打印的原因相同。 n 不是说明符的一部分。

      vvv  --- specifier for unsigned long 
"pid: %lun"
^^^^^ ^ --- non-specifier characters
<小时/>

旁白:

pid_t 数据类型是 signed integer能够表示进程ID的类型

参见What is the correct printf specifier for printing pid_t?

关于c - 请问,为什么当我运行此代码时,会打印出额外的 "n"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58240207/

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