печать переменных значения uint4 в c - PullRequest
1 голос
/ 20 октября 2011

В моей программе переменная uint4 x.Я должен напечатать его значение в стандартный вывод.

Как я могу реализовать его, используя printf?

Заранее спасибо

Примечание: uint4 x структура 4целые числа без знака

Ответы [ 5 ]

8 голосов
/ 20 октября 2011

uint4 не является стандартным типом и не имеет общего определения. Я знаю проекты, где uint4 относится к любому из них:

  • 32-разрядное целое число без знака (1)
  • 4-битный целочисленный тип без знака, реализованный как битовое поле (2)
  • структура из 4 целых чисел без знака (3)

Вы напечатаете их так:

// 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);
3 голосов
/ 20 октября 2011

Используйте спецификатор формата для шестнадцатеричных чисел шириной 1 (так как 4-разрядное число может иметь максимальное значение 0xf):

printf("%1x", x);
2 голосов
/ 20 октября 2011

Если это тип CUDA uint4, вы должны сделать это следующим образом в C:

uint4 v;

printf("v = { %u, %u, %u, %u }\n", v.x, v.y, v.z, v.w);
1 голос
/ 20 октября 2011

Не printf("x=%d\n", x); не работает?

Что такое уинт4?

0 голосов
/ 20 октября 2011

Используйте int вместо uint4, я никогда раньше не слышал о uint4.

#include <stdio.h>

int main()
{
    int x = 1;
    printf("Value of x: %i", x);
    return 0;
}

В качестве альтернативы вы можете использовать unsigned int, если хотите сохранить только положительные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...