Jim*_*ter 16
没有这样的说明者.我认为你正在做的事情很好......你可以使用更宽泛的int类型,但是没有实现哪个pid_t更大,long也可能永远不会.
对于缺少匹配格式说明符的整数类型,如同pid_t已知符号的情况,转换为最宽匹配的签名类型和打印.如果sign-ness未知,则转换为最宽的无符号类型.
pid_t pid = foo();
// C99
#include <stdint.h>
printf("pid = %jd\n", (intmax_t) pid);
Run Code Online (Sandbox Code Playgroud)
要么
// C99
#include <stdint.h>
#include <inttypes.h>
printf("pid = %" PRIdMAX "\n", (intmax_t) pid);
Run Code Online (Sandbox Code Playgroud)
要么
// pre-C99
pid_t pid = foo();
printf("pid = %ld\n", (long) pid);
Run Code Online (Sandbox Code Playgroud)