作者uranusjr (←這人是超級笨蛋)
看板C_and_CPP
標題Re: [問題] C語言列舉、指標、標準問題 (x6)
時間Sun Sep 16 23:39:33 2012
※ 引述《EdisonX (閉上眼的魚)》之銘言:
: 4. NULL 本身做「取址」會怎樣?
: 這是在寫指標範例時,為了清楚表達寫下的 code ,
: 但細思,若有一個步驟為對 NULL 做取址,是否合法?
: int *Ptr = NULL;
: printf(" Ptr = %08x\n", Ptr);
: printf("&Ptr = %08x\n", &Ptr);
: printf("*Ptr = %08x\n", *Ptr);
: 這點不知道在標準裡面有沒有明文規定?還是讓 compiler 自己搞?
沒記錯的話是 undefined behavior
: 5. 有沒有 float32 / float64 之資料型態?
: C99 後多了 stdint.h ,裡面有 uint32_t 等資料型態,
: 針對浮點數,是否只能以 typedef 方式去做而已?
: typedef 的話我想不透有沒有辦法轉交由 macro 判定,
: 不知有沒有人有經驗?
浮點數的 size 本身就有標準 (IEEE 754)
所以不需要特別標示浮點數的位元數
因為正常精度的 float 本來就是 32-bit
而 double 之所以叫 double 就是因為它是 float 的雙倍精度
--
「我最想要的同伴嘛,首先是要笑口常開,其次是我們能永遠不會發生誤會。
如果這些都能辦到的話,嗯,如果他是世界上第一流的橋手,也還不錯。」
-- 班尼多‧加羅素,前義大利藍隊成員
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.81.146
推 azureblaze:4.有時後會搞出Object &obj=*((Object*)NULL)這種東西 09/16 23:56
→ azureblaze:只是dereference一般的compiler似乎不會出錯 09/16 23:56
→ EdisonX:我連浮點數是不是只有 ieee754 表示法都不確定說 Orz 09/17 01:22
推 EdisonX:補個推, 謝謝 u 大 :) 09/17 01:29
推 littleshan:C標準並沒有說浮點數使用IEEE754喔! 09/17 10:49
→ littleshan:規格書甚至還舉了一個以16當radix的例子 (一般都是2) 09/17 10:50