不同整数类型之间的差异

use*_*133 23 c c++

我想知道uint32_t和之间有什么区别uint32,当我查看头文件时它有这个:

types.h:

    /** @brief 32-bit unsigned integer. */
    typedef unsigned int uint32;
stdint.h:

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

这只会带来更多问题:有什么区别

unsigned varName;
Run Code Online (Sandbox Code Playgroud)

unsigned int varName;
Run Code Online (Sandbox Code Playgroud)

我在用 MinGW.

Ker*_* SB 21

unsigned并且unsigned int是同义词,非常喜欢unsigned short [int]unsigned long [int].

uint32_t是(可选)由C标准定义的类型.uint32只是一个你组成的名字,虽然它恰好被定义为同一个东西.

  • 这里有点粗鲁,但是将`unsigned [int]`与`[unsigned](short | long)[int]`进行比较可能会给新程序员一个错误的印象,即`short`和`long`默认是无符号的.我建议`unsigned(short | long)[int]`. (9认同)

Ria*_*iaD 6

没有区别.

unsigned int = uint32 = uint32_t = unsigned在你的情况下,unsigned int = unsigned永远

  • `unsigned int` ==`unsigned`,但它不以任何方式保证`uint32_t` ==`unsigned int`.`unsigned int`可以有16位及以上的任何位宽. (4认同)
  • @AndreyT:这就是为什么我写"在你的情况下" (3认同)