C 未签名的int32 linux-不受支持

C 未签名的int32 linux-不受支持,c,C,我想使用一个未签名的int32,在Ubuntu 9.04上使用GCC4.3.3 然而,当我宣布这一点时: unsigned int32 dev_number; 我得到一个编译错误: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘dev_number’ 有什么建议吗?我肯定你想要达到的目标。您正在尝试使用名为int32的无符号int吗?或者您正在尝试使用无符号32位整数变量 在后一种情况下,您可以尝试使用stdi

我想使用一个未签名的int32,在Ubuntu 9.04上使用GCC4.3.3

然而,当我宣布这一点时:

unsigned int32 dev_number;
我得到一个编译错误:

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

有什么建议吗?

我肯定你想要达到的目标。您正在尝试使用名为int32的无符号int吗?或者您正在尝试使用无符号32位整数变量

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

#include <stdint.h>

uint32_t my_var;
按预期打印int32=42


HTH

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

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

#include <stdint.h>

uint32_t my_var;
按预期打印int32=42


HTH

我可以用这行代码重现您的准确错误:

无符号int32 dev_number=0

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


如果要声明一个无符号32位变量,请使用uint32\u t并确保包含

我可以用这一行重现您的确切错误:

无符号int32 dev_number=0

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


如果要声明无符号32位变量,请使用uint32_t并确保在代码中包含

,使用stdint.h作为头文件,并使用uint32_t而不是无符号int32

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

这是示例代码

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

    int main(void)
    {
            uint32_t i = 50;

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

    }

在代码中,使用stdint.h作为头文件,并使用uint32_t代替未签名的int32

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

这是示例代码

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

    int main(void)
    {
            uint32_t i = 50;

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

    }


我认为问题不在于未签字的声明。你能发布你的完整代码吗?如果这是你的完整代码,那么第一个问题是你忘记了包含定义int32的任何头。我认为问题不在于没有签名的声明。您可以发布完整的代码吗?如果这是您的完整代码,那么第一个问题是您忘记包含定义int32的任何标题。很抱歉,不清楚。我在寻找一个名为dev_number的无符号32位整数变量。您可能希望使用%u而不是%d打印无符号变量。为了清晰/一致性,将常数标记为42u也很好。@unwind;当然我真傻。。被变量名抛出…:使用stdint.h。它是否可以跨平台移植,例如win32、unix、linux?不,它不是。它是C99的一部分,MSVC没有实现它。但是,您可以很容易地获得Windows版的stdint,并将其添加到源代码中。很抱歉,不清楚。我在寻找一个名为dev_number的无符号32位整数变量。您可能希望使用%u而不是%d打印无符号变量。为了清晰/一致性,将常数标记为42u也很好。@unwind;当然我真傻。。被变量名抛出…:使用stdint.h。它是否可以跨平台移植,例如win32、unix、linux?不,它不是。它是C99的一部分,MSVC没有实现它。但是,您可以很容易地获得Windows版stdint,并将其添加到源代码中。我来自C,我想这就是混淆的原因。我在寻找一个无符号int32位变量。我来自C,我想这就是混淆的原因。stdint.h是可移植的,只是微软直到VS2010才提供MSVC。在这里获取一个:@Michael谢谢你的链接。stdint.h是可移植的,只是微软在VS2010之前不提供MSVC。这里有一个:@Michael谢谢你的链接。