C 未签名的int32 linux-不受支持
我想使用一个未签名的int32,在Ubuntu 9.04上使用GCC4.3.3 然而,当我宣布这一点时: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
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谢谢你的链接。