首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 程式 sleep(5000) 導致運行異常:單位誤解與編譯器建議

     編輯:程式設計綜合問答

程式碼中呼叫 sleep(5000) 導致程式「卡住」5000 秒(約 1.4 小時),而非預期的 5 秒。

原因

  • 標準 C sleep() 單位為秒(POSIX / Windows 皆同)。
  • sleep(5000) = 睡眠 5000 秒。

正確用法

需求函式標頭檔範例
秒級sleep(5)<unistd.h> (Linux) / <windows.h> (Windows)睡 5 秒
毫秒級usleep(5000000) (Linux) / Sleep(5000) (Windows)<unistd.h> / <windows.h>睡 5 秒
跨平台 C++11std::this_thread::sleep_for(5s)<thread>, <chrono>睡 5 秒

編譯器建議

  • 避免使用過時的 Turbo C / Dev-C++ 4.9.9.2。
  • 推薦 Visual Studio Community、CLion、VS Code + GCC (MinGW/MSYS2)、Code::Blocks (新版)。
  • 嵌入式開發請使用廠商提供的 IDE (Keil, IAR, STM32CubeIDE 等)。

搞清 sleep 單位,選用現代工具鏈,能省去大量莫名其妙的「程式跑不動」問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved