dポイントプレゼントキャンペーン実施中!

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

環境 OS Fedora Core 2
言語 C

A 回答 (1件)

>typedefで宣言すればできるのかと思い試行錯誤してみたのですができませんでした。


typedef宣言で出来ますよ。こういう質問の時は、どのように書いて駄目だったのかを書いたほうがいいです。

typedef unsigned short u_short;

また、includeのディレクトリで、grep u_short *.h */*.h 等とすると既に定義してあるヘッダファイルが見つかるかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

説明不足ですみません。
Socketプログラミングを組んでいた時にポート番号を格納する変数を
u_short client_port;
と宣言している資料があり、同じように宣言したのですが
エラーが出てコンパイルできなかったので
typedef unsigned short u_short;
と書き加えたのですができず、typedefの位置を変えたりして試行錯誤していました。

試しに、簡単なプログラムを組み同じことを試してみたらすんなりコンパイルできたので、
他に問題があると思い、調べていたら
<netinet/in.h>
が原因だったことが分かりました。

notnotさん、迅速なお回答ありがとうございました。

お礼日時:2004/06/09 04:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!