[英]Difference between getch() and _getch()
conio.h頭文件中定義的兩個函數之間有什么區別 -
getch()和_getch()。
decalaration有區別嗎? 或者僅僅因為更新的標准而有所不同?
這是幾年前微軟決定更嚴格地解釋C ++標准的一部分。 它表示全局命名空間中以下划線開頭的所有名稱都保留供實現使用 。 這意味着getch
不是保留名稱,但_getch
是。
所以微軟認為“這個函數,以及所有其他POSIX函數,都是由實現提供的。讓我們通過預先設置下划線來重命名它們,這樣我們就可以將它保留在全局命名空間的”保留“部分內。方式,用戶提供的功能沒有名稱沖突的可能性。
你可以說這些都是好意,或者說這只是打破POSIX代碼的邪惡嘗試。 我不知道他們的真正動機是什么,但最終的結果是,根據微軟的說法, getch
已被棄用,你應該使用_getch
代替。
這兩個函數都是非標准的(即它們不符合C ++ ISO標准)。 它們是您的特定工具鏈提供的擴展,因此,您必須檢查其文檔中的差異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.