討論串[語法] %d和%s的實際行為?
共 4 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓7(7推 0噓 1→)留言8則,0人參與, 最新作者suhorng ( )時間16年前 (2009/12/22 20:18), 編輯資訊
0
0
0
內容預覽:
在 IA32 with Windows or Linux 之下,. 每個程式都有一塊用途特殊的記憶體區, 稱為堆疊, 由 ESP 指向其頂端 (EBP 也可). 對於呼叫與回返的指令 (CALL / RET), 它會把下一步要執行的指令位址 (由 EIP 指向). 推到堆疊裡 / 從堆疊拿出來, 並
(還有1125個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者legnaleurc (CA)時間16年前 (2009/12/22 12:07), 編輯資訊
0
0
1
內容預覽:
沒有這麼複雜吧 ... 推文都有人說它是用 va_list 做了 .... 下面是簡單的做法:. void printf( const char * format, ... ) {. char * f = NULL;. int amount = _parse( format, f );. va_li
(還有346個字)

推噓1(1推 0噓 8→)留言9則,0人參與, 最新作者jlovet (偷拿程式碼的八卦)時間16年前 (2009/12/21 19:15), 編輯資訊
0
0
0
內容預覽:
printf 有很多參數. 第一個是格式 "%s" or "%d" .... 然後後面一個一個是要印出來的值. 當你沒有指定的時候. 也不知道他是去stack還是哪裡讀得參數.... 那如果讀到1000,他就印出數字1000. 或是,他就去記憶體位址1000的地方找字串來印.... 問題是那個位址不

推噓2(2推 0噓 0→)留言2則,0人參與, 最新作者raincole (冷雨)時間16年前 (2009/12/21 19:01), 編輯資訊
0
0
0
內容預覽:
我想請問的是printf中%d和%f的事實上是如何作用的。. 例如說printf("%s");會記憶體錯誤,但printf("%d");只是輸出一個垃圾值,. 是什麼原因造成這種差別?. --. 發信站: 批踢踢實業坊(ptt.cc). ◆ From: 210.60.107.236.
首頁
上一頁
1
下一頁
尾頁