• ベストアンサー

C言語について

昨日も質問したものなのですが、また疑問がでてきてしまいました。基本的な質問かもしれませんが、教えてください。 1.修飾子をつけた(long int)で宣言した後、階乗などを求めることでその変数の範囲を超えると予測できる場合どうしたらいいですか。 2.int main()やgetchar()のように()の中に何も書かないというのはどういうときなのですか。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>(long int)で宣言した後、階乗などを求めることでその変数の範囲を超えると予測できる場合どうしたらいいですか。 宣言した範囲を越える場合、その計算はできないので、 オーバーフローエラーとして処理するか、 計算前にそのような計算をはじく処理をする。 Cに用意されている範囲の整数型で収まらない範囲の整数演算を行いたい場合には、自前で、そのような大きい数が表現できるような構造を作る必要がある。 (多倍長演算で検索してみて下さい)

neige_6
質問者

お礼

丁寧に教えていただいてありがとうございました!多倍長演算で検索してみます。

その他の回答 (1)

  • Dooon
  • ベストアンサー率20% (36/180)
回答No.1

1.キャストすれば可能かと思います。 int iCnt; : (long)iCnt = int範囲を超える値 2.引数渡しがないときに使います。

neige_6
質問者

お礼

さっそくの回答ありがとうございました!キャストを使ってみます。また疑問がでてきたときはお聞きするかもしれませんが、できたらよろしくお願いします!

関連するQ&A