2012-03-21 19 views
0

に私はCコードの部分を持っている:どのようATOIとキャストint型()のInt32

Int32 tmp = atoi("314"); 

これは、エラーがスローされます:

error: Int32 undeclared (first use in this function) 

私がなぜ分かりませんか?私たちを手伝ってくれますか?

  • sys/socket.h
  • netinet/in.h
  • arpa/inet.h
  • stdio.h
  • stdlib.h
  • string.h
  • は、多分それは#include sの問題です

  • strings.h
+1

あなたはint tmp = atoi( "314"); ' – thumbmunkeys

答えて

4

Int32と呼ばれる標準タイプはありません。あなたは、おそらくあなたは32ビット整数が必要な場合は、標準タイプはinttypes.hまたはstdint.hで定義されてint32_tある

int tmp = atoi("314"); 

を探しています。

+1

+1。 'stdint.h'を提案します。 – ApprenticeHacker

+4

また、 'atoi'は、32ビットの数値を確実に読み取ることが目標である場合には役に立ちません(' int'は32ビットより小さくなる可能性があります)。その場合、 'inttypes.h'の' SCNd32'マクロで 'strtol'または' sscanf'が必要になります。 –

-1

あなたがのInt32変数をしたい場合は、このリンクをチェックし

<arm.h> 

を使用する必要があります。 http://pubs.opengroup.org/onlinepubs/009619299/apdxa.htm

+1

*本当に*なぜあなたはそのランダムなヘッダーを含めるべきですか?また、 'Int32'ではなく' int32'を定義します。 – mattjgalloway

+2

Err ...プラットフォーム固有のヘッダーの代わりに、単に 'stdint.h'をインクルードしてはいけません。 – ApprenticeHacker

2

Int32タイプはCにありません。int32_tuint32_tにはstdint.hを含めることができます。しかし、この場合、おそらくintを使用します。

int tmp = atoi("314"); 
関連する問題