我正在尝试向我学习一些C,并且遇到了可能是一个简单的问题。我正在尝试编译一些包含以下声明的代码:
int32 count;
但是,这会在编译时导致错误:
test.c:21: error: ‘int32’ undeclared (first use in this function)
我需要为gcc设置一个特定的编译时选项,还是一个可以解决这个问题的#include
指令?
P.S。我在Ubuntu Intrepid上运行。
答案 0 :(得分:22)
int32
类型不是标准C - 标准等效于#include <stdint.h>
并使用int32_t
。
但是,作为POSIX系统,在Ubuntu上int
是(至少)32位,所以你可以使用它。
答案 1 :(得分:-1)
'int'的大小取决于您使用的编译器。对于相同的目标体系结构,不同的编译器可以具有不同的“int”大小。这取决于他们如何利用目标功能。例如,在Windows上运行的Turbo C的“int”大小为2个字节(它是DOS可执行文件)。虽然Visual C将'int'的大小赋予32(win32可执行文件)。
通常,'int'的大小由目标体系结构的单词大小决定。单词的大小反映出来 1.处理算术运算的大小。 2.通用寄存器的大小。 3.用于指定位置的地址大小。
但是在您的情况下,您错误地使用关键字“int32”作为数据类型。检查目标计算机并修复相应使用的关键字。