在我的程序中,我有uint4 x
变量。
我必须将它的值打印到stdout。
如何使用printf
实现它?
提前谢谢
注意:uint4 x
4个无符号整数的结构
答案 0 :(得分:8)
uint4
不是标准类型,也没有通用的定义。我知道uint4
引用其中任何一个的项目:
你可以这样打印出来:
// case (1)
#include <inttypes.h>
typedef uint32_t uint4;
uint4 x = 42;
printf("x = %" PRIu32, x);
// case (2)
typedef struct { unsigned value : 4; } uint4;
uint4 x = { 7 };
printf("x = %u", x.value);
// case (3)
typedef struct { unsigned x, y, z, w; } uint4;
uint4 quad = { 1, 2, 3, 4 };
printf("x = %u, y = %u, z = %u, w = %u", quad.x, quad.y, quad.z, quad.w);
答案 1 :(得分:3)
使用十六进制数字的格式说明符,宽度为1
(因为4位数字的最大值可以为0xf
):
printf("%1x", x);
答案 2 :(得分:2)
如果这是CUDA类型uint4
,那么您可以在C中这样做:
uint4 v;
printf("v = { %u, %u, %u, %u }\n", v.x, v.y, v.z, v.w);
答案 3 :(得分:1)
printf("x=%d\n", x);
不起作用吗?
什么是uint4?
答案 4 :(得分:0)
使用int而不是uint4,我以前从未听说过uint4。
#include <stdio.h>
int main()
{
int x = 1;
printf("Value of x: %i", x);
return 0;
}
或者,如果您只想存储正值,则可以使用unsigned int
。