2009-08-29 11 views
7

私はC言語を学びたいと思っています。おそらく単純な問題に遭遇しました。私がする必要がある特定のコンパイル時のオプションがあります"int32 undeclared" gccエラー

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

:これはコンパイル時にエラーが発生し、しかし

int32 count; 

:私は、次の宣言が含まれているいくつかのコードをコンパイルしようとしていますgcc用に設定するか、これを解決する指令#includeを使用しますか?

p.s.私はUbuntu Intrepidを実行しています。

答えて

22

int32タイプは標準Cではありません。標準の同等物は#include <stdint.h>であり、int32_tです。

しかし、POSIXシステムでは、Ubuntuプレーンでintは(少なくとも)32ビットなので、それを使うことができます。

+4

2つの注意点:1) ' 'は標準ですが、gccでは問題ありませんが、他の場所(例:MSVC)でも問題ありません。 2)POSIXは 'int'を32ビットにする必要はなく、それ以外のUnixもあります。 –

+1

POSIXで許される4つのプログラミング環境があります(ここにリストされています:http://opengroup.org/onlinepubs/009695399/utilities/c99.html#tagtcjh_11)。それらはすべて、少なくとも32である必要がありますビット。 – caf

+0

Cヘッダー 'stdint.h'をC++にインクルードするには' #include ' –

-1

'int'のサイズは、使用するコンパイラによって異なります。同じターゲットアーキテクチャーでは、異なるコンパイラーは 'int'に対して異なるサイズを持つことができます。ターゲット機能をどのように利用しているかによって異なります。たとえば、Windows上で実行されているTurbo Cは、2バイト(そのDOS実行ファイル)として 'int'サイズを持っています。 Visual Cは 'int'のサイズを32(win32実行可能ファイル)と指定します。

一般に、 'int'のサイズは、ターゲットアーキテクチャごとにwordのサイズによって決まります。単語のサイズは に反映されます。1.算術演算の処理サイズ。 2.汎用レジスタのサイズ。 3.ロケーションを指定するために使用されるアドレスのサイズ。

しかし、あなたのケースでは、誤ってキーワード 'int32'をデータ型として使用しています。ターゲットマシンを確認し、それに応じてキーワードを修正してください。

+0

これはC99で指定された新しい 'typedef'の1つで、ヘッダ' stdint.h'で利用できます。 – TechZilla

+0

'int32'は標準のCではキーワードではありません。 –

関連する問題