ご訪問ありがとうございます。
MSYS から Relo に乗り換えまして、
「C(gcc) 入門(1)」の続きです。
gcc で行くと決めたときに参照した、
「gccとVC」にある「整数型」に依ると、
(符号付き)整数は、
1バイト・・・・・char
2バイト・・・・・short
4バイト・・・・・int
8バイト・・・・・int64_t
で行けるみたいです。
(int は、2バイトと云う世界もある?)
他にも、いろいろと
「short int」「long」「long int」「long long」「long long int」
なんかが有るみたいですが、
(<紙>は長いのはきらいなので)、・・・
また、符号無しでは「unsigned」を付けるのかナ。
これも長ったらしくなるので、
「typedef unsigned int DWord;」
などと、
「Byte」「Word」「DWord」「QWord」とします。
それから、
定数の場合は、数値の末尾にLL(符号つき)かULL(符号なし)をつける。
printfなどで表示する場合は"%lld"などを使います。
とあるので、
実験してみました。
![](https://blogimg.goo.ne.jp/user_image/5d/87/9d6763b506d9861f74045763b134e9ba.png)
ダメですね!
「int64_t」は8バイトだと云っているが?
11桁の数字が???
「10」を32ビット左シフトしたら消えて無くなった?
つまり、4バイト???
これは、一体どういう事???
数日間悩みました。
これと一緒:「gcc: problem with scanf/printf with 64 bit integers on mingw」
です。
で、解決しました!!!
As a first step, is your question answered here?
http://search.gmane.org/?query=long+long+ll&group=gmane.comp.gnu.mingw.user
とあります。
見に行きました。
(何故か 6番目を見ました。4番目でも同じ?)
「6. Re: long long int printf query (89%)」
つまり、
「printf」では「ll」(エルエル)じゃなくて「I64」だそうです。
確認・・・・・
![](https://blogimg.goo.ne.jp/user_image/56/90/3ff835685eebccb0268f4d5bd1bfa369.png)
OKですね。
これで、「整数型」は何とか行ける。
そうだ、
「Relo」で気をつけること!
名前を付けて保存する時
「拡張子」は自動で付加してくれない!!!
下図の赤ワクは要注意
緑ワクの様に!!!
クリックで拡大(別窓)
と云うことで、gcc(C)言語仕様の勉強中です。![](https://blogimg.goo.ne.jp/img_emoji/hiyob_uru.gif)
見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒![日記@BlogRanking](http://img.diary-ranking.com/banner03s.gif)
人気BlogRanking ⇒![](https://blogimg.goo.ne.jp/user_image/66/00/5b92815f00dcd103326e56b38c49211a.png)
blogram ⇒![blogram投票ボタン](http://widget.blogram.jp/images/bgButton1_gre.gif)
MSYS から Relo に乗り換えまして、
「C(gcc) 入門(1)」の続きです。
gcc で行くと決めたときに参照した、
「gccとVC」にある「整数型」に依ると、
(符号付き)整数は、
1バイト・・・・・char
2バイト・・・・・short
4バイト・・・・・int
8バイト・・・・・int64_t
で行けるみたいです。
(int は、2バイトと云う世界もある?)
他にも、いろいろと
「short int」「long」「long int」「long long」「long long int」
なんかが有るみたいですが、
(<紙>は長いのはきらいなので)、・・・
また、符号無しでは「unsigned」を付けるのかナ。
これも長ったらしくなるので、
「typedef unsigned int DWord;」
などと、
「Byte」「Word」「DWord」「QWord」とします。
それから、
定数の場合は、数値の末尾にLL(符号つき)かULL(符号なし)をつける。
printfなどで表示する場合は"%lld"などを使います。
とあるので、
実験してみました。
![](https://blogimg.goo.ne.jp/user_image/5d/87/9d6763b506d9861f74045763b134e9ba.png)
ダメですね!
「int64_t」は8バイトだと云っているが?
11桁の数字が???
「10」を32ビット左シフトしたら消えて無くなった?
つまり、4バイト???
これは、一体どういう事???
数日間悩みました。
これと一緒:「gcc: problem with scanf/printf with 64 bit integers on mingw」
です。
で、解決しました!!!
As a first step, is your question answered here?
http://search.gmane.org/?query=long+long+ll&group=gmane.comp.gnu.mingw.user
とあります。
見に行きました。
(何故か 6番目を見ました。4番目でも同じ?)
「6. Re: long long int printf query (89%)」
つまり、
「printf」では「ll」(エルエル)じゃなくて「I64」だそうです。
確認・・・・・
![](https://blogimg.goo.ne.jp/user_image/56/90/3ff835685eebccb0268f4d5bd1bfa369.png)
OKですね。
これで、「整数型」は何とか行ける。
そうだ、
「Relo」で気をつけること!
名前を付けて保存する時
「拡張子」は自動で付加してくれない!!!
下図の赤ワクは要注意
緑ワクの様に!!!
![](https://blogimg.goo.ne.jp/thumbnail/4e/83/5b33f42bd0526b72538c17e7cb068a55_s.jpg)
と云うことで、gcc(C)言語仕様の勉強中です。
![](https://blogimg.goo.ne.jp/img_emoji/hiyob_uru.gif)
見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒
![日記@BlogRanking](http://img.diary-ranking.com/banner03s.gif)
人気BlogRanking ⇒
![](https://blogimg.goo.ne.jp/user_image/66/00/5b92815f00dcd103326e56b38c49211a.png)
blogram ⇒
![blogram投票ボタン](http://widget.blogram.jp/images/bgButton1_gre.gif)