标签: uint32-t

uint32和uint32_t之间的区别

可能重复:
不同整数类型之间的差异

在C/C++中uint32和uint32_t有什么区别?

它们依赖于OS吗?

在哪种情况下,我应该使用一个或另一个?

谢谢

c c++ uint32 uint32-t

73
推荐指数
2
解决办法
14万
查看次数

'uint32_t'没有命名类型

我正在尝试编译2007年编写的C++软件包,我收到了这个错误:

error: ‘uint32_t’ does not name a type

这是在使用g ++ 4.5.2的64位Ubuntu中发生的.它使用g ++ 4.1.2在64位CentOS上编译良好.

#include我缺少一个或一个编译器标志吗?或者,我应该typedef用来分配uint32_t一个size_t或者一个unsigned int

c++ cstdint uint32-t

66
推荐指数
4
解决办法
15万
查看次数

我什么时候应该在C中使用UINT32_C(),INT32_C(),...宏?

我在项目中切换到固定长度的整数类型主要是因为它们帮助我在使用它们时更清楚地考虑整数大小.包括他们通过#include <inttypes.h>还包括了如印刷宏一帮其他的宏PRIu32,PRIu64...

要为固定长度变量分配常量值,我可以使用像UINT32_C()和的宏INT32_C().每当我分配一个恒定值时,我就开始使用它们.

这导致代码类似于:

uint64_t i;
for (i = UINT64_C(0); i < UINT64_C(10); i++) { ... }
Run Code Online (Sandbox Code Playgroud)

现在我看到几个不关心它的例子.一个是stdbool.h包含文件:

#define bool    _Bool
#define false   0
#define true    1
Run Code Online (Sandbox Code Playgroud)

bool在我的机器上有1个字节的大小,所以它看起来不像int.但是,01应应自动转为正确的类型由编译器整数.如果我在我的示例中使用它,代码将更容易阅读:

uint64_t i;
for (i = 0; i < 10; i++) { ... }
Run Code Online (Sandbox Code Playgroud)

那么我何时应该使用固定长度的常量宏UINT32_C(),何时应该将该工作留给编译器(我正在使用GCC)?如果我在MISRA C中编写代码怎么办?

c misra fixed-width uint32-t

20
推荐指数
1
解决办法
1694
查看次数

什么是*(uint32_t*)

我很难理解*(uint32_t*).

让我说我有

uint32_t* ptr;
uint32_t num
*(uint32_t*)(ptr + num); //what does this do? does it 
Run Code Online (Sandbox Code Playgroud)

c uint32-t

8
推荐指数
2
解决办法
4万
查看次数

如何将uint32_t转换为char*类型

您好我使用带有adafruit盾牌的Arduino UNO来显示分数值,但用于显示分数的功能仅接受char*值,分数本身最多可占用6位数(000,000到999,999).我曾尝试使用sprint(),但我没有运气,因为屏幕会像疯了一样闪烁.我认为问题是chars只保留一定数量的字节,不能适应32位int但我认为他们是一种方法.绘制文本是屏蔽在屏幕上绘制的函数,输入为char*,颜色代码,大小,x像素,y像素.如果有人可以帮我转换这两种类型,请告诉我.如果他们是替代品,也会帮助我.

我的代码:

char* textToWrite;
uint32_t currentScore = 0;
uint32_t highScore = 0;
highScore = currentScore;
sprintf(textToWrite,"%d.%d.%d.%d\0", currentScore);//sprint f not working properly right now
drawText(textToWrite, ST7735_WHITE, 1, 100, 10);
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用:

sprintf(textToWrite,"&#37;u", currentScore);
Run Code Online (Sandbox Code Playgroud)

c c++ arduino char uint32-t

6
推荐指数
1
解决办法
2万
查看次数

如何从uint32_t打印十六进制?

我一直在处理的代码要求我uint32_t以十六进制打印一个类型的变量,填充为0,最小长度为8.到目前为止我用来执行此操作的代码是:

printf("%08lx\n",read_word(address));
Run Code Online (Sandbox Code Playgroud)

其中read_word返回类型uint32_t.我使用jx,llx等格式无济于事,是否有正确的格式可以使用?

编辑:

我发现问题在于我正在经历的事情.函数read_word从uint32_t向量返回一个值.这似乎是导致输出hex的问题.这是一个通过引用/值问题传递,修复是什么?

read_word函数:

uint32_t memory::read_word (uint32_t address) {
  if(address>(maxWord)){
        return 0;
    }

    return mem[address];

}
Run Code Online (Sandbox Code Playgroud)

记忆减速:

std::vector<uint32_t> mem=decltype(mem)(1024,0);
Run Code Online (Sandbox Code Playgroud)

c c++ printf unsigned uint32-t

5
推荐指数
1
解决办法
9299
查看次数

C改变了一点uint32_t无法正常工作

我有

uint32_t bits = 0;

bits |= 1<< 31;
bits |= 1<< 15;
bits |= 1<< 14;
bits |= 1<< 13;
Run Code Online (Sandbox Code Playgroud)

这给了我10000000000000001110000000000000

而在我做的另一个功能*(bits) |= 0 << 15;但它没有做任何事情,它应该将第16个1更改为0,所以以下应该来:10000000000000000110000000000000

任何帮助?

c bits sign uint32-t

2
推荐指数
1
解决办法
430
查看次数

在Struct或Union上使用ntohl

ntohl需要一个uint32_t.我有许多不同成员(类型uint32_tuint16_t)的消息.是否有可能正确地传递所有收到的struct或者union转换成说出uint32_t然后reinterpret_cast进入我的unionstruct

我一直在做的是逐行列出,union或者struct将每个成员传递给ntohl/s,msg.member = ntohl(msg.member);但这很麻烦!

数据结构从C#.NET应用程序(Windows)整体传输到Linux应用程序.

我试过的时候

void* ptr = &msg;
uint32_t temp = (uint32_t)ptr;
Run Code Online (Sandbox Code Playgroud)

编译器抱怨说:

错误:从'void*'转换为'uint32_t'会失去精度

c++ linux endianness uint32-t

1
推荐指数
1
解决办法
743
查看次数

C中*((uint32_t*)&..)的含义

LPC_CAN1->TDA1 = *(uint32_t *) &msg->data[0];    // Write first 4 data bytes 
Run Code Online (Sandbox Code Playgroud)

请告诉我为什么使用*(uint32_t )以及uint32_t之前和之后这个" " 的用途是什么

c keil uint32-t

1
推荐指数
1
解决办法
1253
查看次数

如何将struct成员存储为big endian

我有一个struct类似于:

typedef struct _pair_t{
    uint16_t    keylen;     // 2
    uint32_t    vallen;     // 4
} __attribute__((__packed__)) pair_t;
Run Code Online (Sandbox Code Playgroud)

我将使用mmap从文件中读取,所以我想将数字存储为大端.

我是否需要这样做htobe16/ betoh16或者有一些__attribute__可以为我做到这一点?

c int struct endianness uint32-t

0
推荐指数
1
解决办法
139
查看次数

如何通过wprintf函数打印uint32_t变量值?

众所周知,要打印变量值,类型是固定宽度整数类型之一(如uint32_t),您需要包含cinttypes(在C++中)或inttypes.h(在C中)头文件,并使用格式说明符宏PRIu32.但是在使用wprintf函数时如何做同样的事情?L在这种情况下,这样的宏应该扩展为带有前缀的字符串文字.

c c++ printf wchar-t uint32-t

0
推荐指数
1
解决办法
573
查看次数

包括iostream中断uint32_t定义(C)

编辑:请忽略这个问题.我意识到我是一个白痴,非常友好和乐于助人的人指出iostream不是C而是C++库.

我遇到了一个非常奇怪的问题.

我有一个完全工作的程序(大约1000行).我需要

#include <iostream> 
Run Code Online (Sandbox Code Playgroud)

当我这样做时,uint32_t的typedef会中断.

它被定义为这样

typedef unsigned __int32 uint32_t;
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio 2017.这是它给出的错误

\ vc\tools\msvc\14.15.26726\include\cstdlib(19):错误C2061:语法错误:标识符'noexcept'

当我将鼠标悬停在现在的下划线uint32_t时,会出现以下情况:

uint32_t变量"uint32_t"不是类型名称

评论这条线

#include <iostream>
Run Code Online (Sandbox Code Playgroud)

该程序按预期编译和运行.

是什么赋予了?

边题.我使用uint32_t的原因是为了保证我的变量是32位长,因为我正在进行大量的位操作.使用unsigned int会安全吗?

这是我包括的所有内容的列表:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <iostream>

typedef unsigned __int32 uint32_t;
Run Code Online (Sandbox Code Playgroud)

c iostream uint32-t

-2
推荐指数
1
解决办法
111
查看次数

标签 统计

uint32-t ×12

c ×10

c++ ×6

endianness ×2

printf ×2

arduino ×1

bits ×1

char ×1

cstdint ×1

fixed-width ×1

int ×1

iostream ×1

keil ×1

linux ×1

misra ×1

sign ×1

struct ×1

uint32 ×1

unsigned ×1

wchar-t ×1