• ベストアンサー

u_shortなどの省略した宣言について

unsigned short A; のように長い型の変数の宣言を行う場合に u_short A; などと省略形で書いてあるのをたまに参考書などで見かけるのですが、 実際に省略形で宣言をすると `u_short' undeclared とエラーが出て使うことができません。 これはどうすれば省略した形で宣言できるのでしょうか? typedefで宣言すればできるのかと思い試行錯誤してみたのですができませんでした。 ご教授、宜しくお願いいたします。 環境 OS Fedora Core 2 言語 C

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

>typedefで宣言すればできるのかと思い試行錯誤してみたのですができませんでした。 typedef宣言で出来ますよ。こういう質問の時は、どのように書いて駄目だったのかを書いたほうがいいです。 typedef unsigned short u_short; また、includeのディレクトリで、grep u_short *.h */*.h 等とすると既に定義してあるヘッダファイルが見つかるかもしれません。

pirosuke88
質問者

お礼

回答ありがとうございます。 説明不足ですみません。 Socketプログラミングを組んでいた時にポート番号を格納する変数を u_short client_port; と宣言している資料があり、同じように宣言したのですが エラーが出てコンパイルできなかったので typedef unsigned short u_short; と書き加えたのですができず、typedefの位置を変えたりして試行錯誤していました。 試しに、簡単なプログラムを組み同じことを試してみたらすんなりコンパイルできたので、 他に問題があると思い、調べていたら <netinet/in.h> が原因だったことが分かりました。 notnotさん、迅速なお回答ありがとうございました。

関連するQ&A