• 締切済み

Cと変数と私。 (´・ω・`)

basicしか使えない者です。 cにはなぜ変数のデータ型がたくさんありますか。 なんか5種類くらいあったような気がするんですけど。 整数型とか倍長整数型とかは厳密に使い分けないとダメですか。 いたずらでintをlongに書き換えたら怒られますか。

みんなの回答

  • yama5140
  • ベストアンサー率54% (136/250)
回答No.2

>いたずらでintをlongに書き換えたら怒られますか。 ★だれも気づきませんので、怒りようがありません。 ☆逆に、long を int にしたら「コンパイラ」が、  やさしく諫めるかもしれませんし、気づかないかも・・。

全文を見る
すると、全ての回答が全文表示されます。
  • lesskey
  • ベストアンサー率33% (66/200)
回答No.1

環境によってint,long型で扱える値が異なります。 ・16ビット環境/ int: 2バイト、 long: 4バイト ・32ビット環境/ int: 4バイト、 long: 4バイト ・64ビット環境/ int: 4バイト、 long: 8バイト ただ上記はあくまでも例でして、実際には環境で異なります。 32ビット環境のlong:8バイトとかもあるかと(sizeof演算子で調べるのが良いみたい) 厳密に使い分けた方が他環境への移植性を考えると良いです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C言語の変数の型がわかりません

    C言語の変数の型がわかりません [int]は4バイトを使って整数(-2147483648~2147483648)を格納できる. [long int]は4バイトを使って整数(-2147483648~2147483648)を格納できる. のようなことが書いてあります. [int]と[long int]の違いは何ですか?

  • マイコンの変数について

    マイコン(AT90S2323)のアッセンブラのC言語で変数のint a;、Long b;等のデータは汎用レジスターでしょうかI/OまたはSRAMなのでしょうかこれはどこに割り振られるのでしょうか。

  • intやshortやcharの変数確保時間

    for文などでよく一時変数に for ( int i=0; ・・・ とか for ( short s=0; ・・・ とか for ( char i=0; ・・・ みたいに整数型の変数が使われます。 確か変数の表せる範囲は long>int>short>char だったと思うのですが、変数を確保する時間やメモリサイズに違いはあるのでしょうか? たとえばlong型変数を10万個確保する時間とintとかshortとかcharのそれ とは違いがあるのかなぁと疑問に思いました。

  • C言語のグローバル変数の初期化について

    C言語において int a = 1; // 動的グローバル変数 static int b = 2; //静的グローバル変数 funcA(){ int c = 3; // 動的ローカル変数 static int d = 4; //静的グローバル変数 ・ ・ ・ } 上記のように各種変数を初期化したとします。 "c"のような動的ローカル変数であれば、funcA()が呼ばれたときに毎回初期化されますよね? では ・"d"のような静的ローカル変数は、初めてfuncA()が呼ばれたときに初期化されるのですか? ・"a","b"のyほうなグローバル変数は、どのタイミングで初期化されるのですか? 以上2点について伺いたいと思います。 ちなみに、組み込み機器むけのソフトウェアを想定しています。

  • c言語の変数の型について

    浮動小数点数の変数の型ってfloat、double、long doubleがありますよね?(その他もあったら教えてください) doubleはfloatの倍精度らしいですが、倍精度ってのは扱える数字の範囲が2倍なのか有効桁が2倍なのかわからないんで教えてほしいです。ちなみに、doubleとlong doubleの違いも判りません。 あと、これらの変数はprintfで出力するときは最高で8桁までしか出力できないんでしょうか?20桁とかは無理なんですかね?

  • 変数の扱える範囲

    C言語で、整数型変数の扱える範囲を確認するために 以下のような処理をしているのですが、どうもうまくいきません。 変数に入りうる最大値の値を、2進数の計算ではなく プログラム内で正しく扱われているか確認する方法はないでしょうか? ご存知の方、教えてください<(_ _)> 宜しくお願いいたします。 **********************************************  unsigned long long I; unsigned long A; unsigned int B; unsigned short C; printf("I:%d A:%d byte B:%d byte C:%d byte \n"    ,sizeof(I),sizeof(A),sizeof(B),sizeof(C)); A = B = C = 0; for(I = 0; I <= 4294967295; I++){ A++;B++;C++; if(I>= 4294967290 && I<= 4294967295)    printf("I:%d A:%d B:%d C:%d\n",I,A,B,C); }

  • 変数について

    質問1:-0.0685274635この数値を扱うのは(計算したりIFで判断するには)どの変数を使えば良いですか? '変数 Variant Double=倍精度浮動 Currency=通貨型 Integer=整数型 Float=浮動小数点型 Long=長整数型 Dim CAL_DA As Integer Range("A1")="-0.0685274635" CAL_DA =Range("a1") 質問2:CAL_DAが-6.85274..になってしまいます。 ただし、必要とするのは-0.068の桁でよいのですが 質問3:CAL_DA =Mid(Range("a1"),1,6)いけますか? 以上ですよろしくお願いします。

  • C言語signed long long型の演算

    C言語で以下の演算を行った場合、変数bに格納される値が-1(0xFFFFFFFFFFFFFFFF)になることを期待しておりましたが、参照すると4294967295(0x00000000FFFFFFFF)となってしまいます。 unsigned int a = 1; signed long long b; b = a * (-1); 32bit、64bitのUNIX(Solaris)マシンでそれぞれ確認しましたが、どちらも同じ結果となりました。 変数aの型宣言をsigned intにすると変数bが-1(0xFFFFFFFFFFFFFFFF)になることは確認したのですが、unsigned intだとなぜこのような演算結果となるのかが分かりません。 ※8バイト整数に格納する際に先頭4バイトがなぜ0xFFFFFFFFで補完されないのか? ちなみに変数bの型宣言をsigned long intにすると32bitマシンでは-1となりましたが、64bitマシンでは4294967295となってしまいます。 これは32bitUNIXマシンではsigned long intは4バイト領域であるため-1(0xFFFFFFFF)となり、64bitUNIXマシンでは8バイト領域のため前述と同じ結果になるのだと考えますが、なぜ8バイト整数を使用するとこのような演算が行われるのかが分からないので、演算順序や型変換の優先順位がどのように行われいるのか説明できる方教えてください。

  • C# 配列の変数宣言について。

    C#についての質問です。 新たなint型の配列dataを作るため変数宣言文を、以下のように書きました。 int[] data; すると、以下のような警告文が出ました。 『フィールド'IntArray.data'は割り当てられません。常に既定値nullを使用します。』 そこで調べてみたところ、「newしていないからこのような警告文が出る」ということがわかったので、以下のように書き換えました。 private int[] data = new int[]; すると今度は 『配列を作成するには、配列のサイズまたは配列の初期化子を指定する必要があります。』 というエラー文が出てしまいました。 このとき、配列のサイズも初期化子も指定したくない場合には、どのようにプログラムを書けば良いのでしょうか? お分かりになる方がいらっしゃいましたら、ご助言をお願いします。

  • C#変数の扱い

    C#(VS)でデスクトップアプリを開発しています。 初歩的な質問です。 メソッド内で、宣言した変数を使おうとすると 「宣言されているが割り当てられていない。。」 といって使えません (因みに、intは使えますが、string[]はだめです) そもそも、宣言と割り当ての違いはなんですか また、よく 「。。メソッド’****’のオーバーロードはありません」 が出ます これはどういう意味で どう対応すれはいいですか。 入門書等いろいろよみましたが、 実際になるとわからないことが多いす。 よろしくお願いします。

色が正しく印刷できない
このQ&Aのポイント
  • 製品名【DCP-983N】。色が正しく印刷できない問題について相談します。
  • Windows10で使用している製品【DCP-983N】が無線LANで接続されていますが、色が正しく印刷できません。
  • 製品名【DCP-983N】を使用しているが、WORDで印刷する際に色が正しく出力されません。
回答を見る