簡體   English   中英

getch()和_getch()之間的區別

[英]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.

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