2009-08-29 122 views
7

我想學習一些C,並且遇到了可能是一個簡單的問題。我試圖編譯一些代碼,其中包含了以下聲明:「int32 undeclared」gcc error

int32 count; 

然而,這導致在編譯時錯誤:

 
test.c:21: error: ‘int32’ undeclared (first use in this function) 

有我需要一個特定的時間編譯選項設置爲海灣合作委員會,或將解決這個問題的#include指令?

p.s.我在Ubuntu Intrepid上運行。

回答

22

int32類型不是標準C - 標準等效爲#include <stdint.h>並使用int32_t

然而,作爲一個POSIX系統,在Ubuntu平原int是(至少)32位,所以你可以使用它。

+4

需要注意的兩件事:1)''是標準的,但它是C99--對gcc不是問題,但可以在其他地方(例如MSVC); 2)POSIX不要求'int'是32位的,並且在那裏有一些Unix不是這樣的。 – 2009-11-05 02:36:36

+1

POSIX允許有四種編程環境作爲默認值(這裏列出:http://opengroup.org/onlinepubs/009695399/utilities/c99.html#tagtcjh_11),所有這些環境都要求「int」至少爲32位。 – caf 2009-11-05 03:45:23

+0

爲了在C++中包含C頭文件'stdint.h',你可以#include ' – 2015-03-29 22:45:37

-1

'int'的大小取決於您使用的編譯器。對於相同的目標體系結構,不同的編譯器對於'int'可以有不同的大小。這取決於他們如何利用目標功能。例如,運行在Windows上的Turbo C的'int'大小爲2個字節(它是一個DOS可執行文件)。雖然Visual C將'int'的大小設置爲32(win32可執行文件)。

一般來說,'int'的大小由單詞的大小決定。字的大小由 反映1.算術運算的處理大小。 2.通用寄存器的大小。 3.用於指定位置的地址的大小。

但是在你的情況下,你錯誤地使用關鍵字'int32'作爲數據類型。檢查目標機器並修正相應使用的關鍵字。

+0

它是C99中指定的一個新的'typedef',它可以在頭文件'stdint.h'中找到。 – TechZilla 2014-02-22 22:32:51

+0

'int32'不是標準C中的關鍵字。 – 2014-06-19 14:03:45