我目前使用显式强制转换为long,并使用%ld来打印pid_t,是否有%z表示size_t表示pid_t这样的说明符?

如果不是,打印pid_t的最佳方式是什么?

推荐答案

没有这样的说明符.我认为您正在做的事情(将pid_t转换为long并将其打印为"%ld")很好;您可以使用更宽的int类型,但是没有大于long的实现,而且可能永远不会大于long.

C++相关问答推荐

我的C语言中的回归函数如何工作?

漏洞仅出现在FreeBSD上,但在Windows、Linux和MacOS上运行得非常好

是否可以在C中进行D3 D12申请?

GCC不警告隐式指针到整数转换'

C中出现分段错误后关闭文件

使用单个字节内的位字段

如何设置指针指向在函数中初始化的复合文字中的整数?

如何在C中从函数返回指向数组的指针?

在Apple Silicon上编译x86的Fortran/C程序

CGO:如何防止在使用CGO在包中包含C头文件时出现多个定义...&q;错误?

OpenSSL:如何将吊销列表与SSL_CTX_LOAD_VERIFY_LOCATIONS一起使用?

如何在C++中安全地进行浮点运算

C11/C17标准允许编译器清除复合文字内存吗?

为什么我在C代码中得到一个不完整的类型?

如何使这个While循环在新行上结束

为什么GCC-O1优化破解了这个代码,为了一个GameBoy高级只读存储器而修改了VRAM的循环?

如何摆脱-WIMPLICIT-Function-声明

Fscanf打印除退出C代码为1的程序外的所有内容

无算术运算符和循环的二进制乘法

`void foo(int a[static 0]);` 有效吗?