<紙>さんLOG

「パソコンヲタクの雑記帳」
 PC/Linux系/物理・化学で遊んでいます。
思いついたことを綴っています。

C(gcc) 入門(2)

2010年03月17日 | PCクリニック
ご訪問ありがとうございます。


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"などを使います。
とあるので、
実験してみました。



ダメですね!
「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」だそうです。

確認・・・・・



OKですね。

これで、「整数型」は何とか行ける。


そうだ、
「Relo」で気をつけること!
名前を付けて保存する時
「拡張子」は自動で付加してくれない!!!

下図の赤ワクは要注意
緑ワクの様に!!!

クリックで拡大(別窓)

と云うことで、gcc(C)言語仕様の勉強中です。     



見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒ 日記@BlogRanking

人気BlogRanking ⇒ 

blogram ⇒ blogram投票ボタン