unsigned int32 linux - 不支持

时间:2009-11-04 07:38:24

标签: c

我想在Ubuntu 9.04上使用gcc 4.3.3使用unsigned int32。

然而,当我宣布这个时:

unsigned int32 dev_number;

我收到编译错误:

error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘dev_number’

有什么建议吗?

3 个答案:

答案 0 :(得分:8)

我确定你正在努力实现的目标。你想要一个名为int32的unsigned int吗?或者您是否尝试使用无符号的32位整数变量?

在后一种情况下,您可以尝试使用stdint.h,它定义了一组保证(我相信?)至少包含指定位的类型。

#include <stdint.h>

uint32_t my_var;

在前一种情况下,我看不出为什么你的线不能工作。

unsigned int32 = 42;

printf ("int32 = %u\n", int32);

按预期打印int32 = 42

HTH

答案 1 :(得分:7)

在您的代码中,使用stdint.h作为头文件,并使用uint32_t而不是unsigned int32。

stdint.h是C99标准库中引入的标准头文件。它允许程序员通过提供一组typedef来编写更多可移植代码,这些typedef指定精确宽度整数类型,以及使用宏定义的每种类型的最小和最大允许值。请参阅维基页面here

以下是示例代码,

    #include <stdio.h>
    #include <stdint.h>

    int main(void)
    {
            uint32_t i = 50;

            printf("heloo world  %d\n", i);
            return 0;

    }

答案 2 :(得分:3)

我可以使用此行重现您的确切错误:

unsigned int32 dev_number = 0;

你确定你没有写过类似的东西吗? C中没有int32类型。

如果要声明无符号32位变量,请使用uint32_t并确保#include <stdint.h>