[問題] printf %d ,0從哪裡來?

看板C_and_CPP (C/C++)作者 (隨機數能吃嗎?)時間16年前 (2009/05/05 17:01), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
#include <stdio.h> int64_t fmrg_p = 2147483647; int64_t fmrg_b = 1047849; int64_t fmrg_index =101; int fmrg_k = 102; int64_t fmrg_seed[102]; int main(void) { int i,a; rand(); printf("%d,%d,%d,%d,%d,%d,%d\n", fmrg_p, fmrg_b, fmrg_index, fmrg_k); } ================================================= 執行結果 2147483647,0,1047849,0,101,0,102 請問一下,中間的零是從哪裡生出來的?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.128.31

05/05 17:21, , 1F
printf 參數不夠, stack 裡面無法預期的數值來的
05/05 17:21, 1F

05/05 17:21, , 2F
對不起, 看錯了, 是 int64_t 的前 32 bit ... Orz
05/05 17:21, 2F

05/05 17:21, , 3F
是變數 int64_t 而 printf 用了 %d 去印,size 不 match
05/05 17:21, 3F
文章代碼(AID): #1A001IyP (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1A001IyP (C_and_CPP)