о_____О
![]() 224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
|
|
1 | |
Чем отличаются по функционалу Kbhit() и _kbhit()19.08.2014, 13:52. Показов 2301. Ответов 6
Метки нет Все метки)
(
Всем привет.
Утолите нубское любопытство. Везде (на msdn, как минимум) пишут пользовать _kbhit() и что при этом происходит. Все просто и понятно. Про kbhit() пишут только, что устарел еще во времена vs2005. И все. А функционально чем они отличаются?
0
|
|
19.08.2014, 13:52 | |
Ответы с готовыми решениями:
6
kbhit Ошибка kbhit() Kbhit() - не определяется Функция kbhit |
315 / 177 / 73
Регистрация: 18.01.2014
Сообщений: 387
|
|||||||||||
19.08.2014, 15:35 | 2 | ||||||||||
Объявлены, как:
Более того, если в отладчике поставить точку останова на вызов этой функции, то при в итоге можно попасть на всю ту же _kbhit():
1
|
о_____О
![]() 224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
|
|
19.08.2014, 15:40 [ТС] | 3 |
Прикольно, спасибо.
0
|
Почетный модератор
![]() 5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
19.08.2014, 15:42 | 4 |
А вы найдите исходники да поглядите.
И что при этом происходит? Чего пишут? Ну а на самом деле, функции, начинающиеся с нижнего подчеркивания, обычно это чисто майкрософтовские поделки. Что они там внутрь засунули неизвестно. Что оно делает можно поглядеть в любом справочнике, а вот как оно это делает - таинство. По этому на msdn и пишут про _kbhit, что впринципе логично: во-первых они свои плюшки продвигают, а во-вторых может быть там какая-либо оптимизация с остальными студийными плюшками задествована. В общем, как подытог, если не планируете переносить свои проекты на другие компиляторы (если не хотите, чтобы ваш код запустился у того, кого вы к примеру попросили помощи, а у него не стоит студия, и вы обломаетесь) и густо используете прочие остальные исконно студийные функции, то пользуйтесь _kbhit и не парьтесь. В противном случае используйте функцию не начинающуюся с подчеркивания. Конкретнее, о преимуществах той или иной реализации, можно будет разговаривать только видя собственно реализацию.
1
|
315 / 177 / 73
Регистрация: 18.01.2014
Сообщений: 387
|
|
19.08.2014, 15:44 | 5 |
В общем вот что выдает компилятор:
The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _kbhit. See online help for details.
0
|
Почетный модератор
![]() 5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
19.08.2014, 15:47 | 6 |
Во. Я так и думал.
BlackIce, а исходников родной функции не накопаете? Сравнить.
0
|
315 / 177 / 73
Регистрация: 18.01.2014
Сообщений: 387
|
|
19.08.2014, 15:55 | 7 |
Нет, в ассемблерном листинге не заменяет, я ошибся, просто в асм добавляется знак подчеркивания:
kbhit -> _kbhit _kbhit -> __kbhit Но в отладчике, что так, что иначе все равно попадаешь на то, что я привел выше, похоже замена происходит при линковке. А какая родная ![]()
0
|
19.08.2014, 15:55 | |
Помогаю со студенческими работами здесь
7
Аналог kbhit Подскажите с функцией kbhit() Kbhit выдает ошибку немогу разобратся с kbhit() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |