cout和printf不能混用


1、兩者的緩存機制不同:printf無緩沖區,而std::cout有 (其實printf也是有緩沖區的,https://blog.csdn.net/ithzhang/article/details/6875176)

2、對於標准輸出的加鎖時機不同:printf在對標准輸出作任何處理前先加鎖;std::out在實際向標准輸出打印時才加鎖

3、二者存在微弱的時序差別,而在多線程環境下,很多問題就是由於微弱的時序差別造成的。所以兩者混用很容易帶來不可預知的錯誤,常見的錯誤有打印輸出的結果不符合預期,而嚴重錯誤時甚至會導致內部緩沖區溢出,導致crash。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM