簡體   English   中英

斷言前的printf不起作用

[英]printf before assert doesn't work

我想我以前看過這個問題,所以我敢打賭,那里有更好的解決方案,所以問。

在調試過程中,我發現assert之前的所有printf都無法正常工作。 大多數情況下,根本不會打印它們。 我嘗試添加fflush(stdout ),但似乎無濟於事。

還有其他想法或選擇嗎?

例:

printf... <- not printed
printf... <- not printed due to the assert. stdout not flushed?

do something

assert()

assert之前調用fflush(stdout) 或者,如果尚未重定向stdout並引用終端,則只需在消息末尾寫換行符就足夠了。 默認情況下,stdout會被緩沖(行緩沖在終端上;否則全緩沖),因此直到輸出緩沖區溢出或換行(在行緩沖模式下)或出現fflush之前,才會實際寫入輸出。

您是否正在進行優化編譯-因為printfs / assert的實際順序可能不符合您的期望。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM