d的格式不能用來輸出sizeof的返回值嗎?

時間 2021-06-06 18:47:36

1樓:

sizeof的返回值為size_t型別,平台相關的。在64位下為long unsigned int, 32位下為unsigned int,而所以應該用%lu 或 %u輸出。當然,一般情況下,如果在64位系統下,用%ld輸出也是不會出問題的,,我就習慣這麼幹。。。

2樓:

C Primer Plus :「如果您的編譯器不支援用%zd 說明符列印sizeof的返回值,請使用%u或者%lu」 書中原話。

3樓:Sunchy321

不能。乙個很顯然的事實是,sizeof結果型別是size_t,它是無符號的,而%d用來輸出int,是有符號的。

C99就用%zu輸出,至於C89麼。。還是轉換成別的什麼型別再輸出吧。例如

printf("%u", (unsigned)sizeof(int));

void main一斤差評。

4樓:RednaxelaFX

Hmm。問題是出在sizeof()運算子的值的型別是size_t而不是int,所以用於int的%d不適合。

如果您用的是C99,您需要:

#include

或者#include

然後在printf裡用%zu

作為size_t的格式。

橘子為什麼不能用來釀醋?

燦海一粟 任何不問 是不是 直接問 為什麼 的人都是耍流氓 在知乎上新學的扇臉技能 這不算廣告吧,純和我沒有任何利益關係,一搜一大堆。發酵這東西有句話,不知道是酒釀成醋還是久釀成醋,反正說的就是 葡萄糖 及其多聚物,某些異構體等 乙醇 乙酸在適當微生物存在的條件下的氧化發酵的過程。橘子含糖量約12 ...

道德為什麼不能用來譴責他人?

聯合國東方大使 道德只能約束自己,不能約束別人,道德只是我們乙個追求的一種品質,社會風氣,既然是這樣那為什麼又要強制約束別人有這種品質呢?別人沒有違反法律,你就要強制別人怎麼做,這不是就是反道德的行為 大樹 道德不能用來約束他人,也不能遣責具體的個人的。約束他人的是法律,法律可以發展完善。這裡並不是...

純鹼為什麼不能用來除水垢?

迪妹迪妹 你向水中加入純鹼,就打破了水中離子的平衡,碳酸根離濃度上公升,相應的鈣離子和鎂離子會生成碳酸鈣和碳酸鎂沉澱出來,所以純鹼是可以去除水垢的。只不過通過計算碳酸鈣和碳酸鎂的溶度積常數,就會發現這樣處理水垢的去除效率不怎麼高 饒冰青 這是乙個化學問題,而且這個問題很顯然是違反了知乎 先問是不是再...