Использование префикса "_" (прибываю в замешательстве.. )

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by 0x22b, 16 Dec 2007.

  1. 0x22b

    0x22b Elder - Старейшина

    Joined:
    1 Dec 2007
    Messages:
    114
    Likes Received:
    32
    Reputations:
    9
    когда кодил на С++ то иногда пользовался функцией языка С getch().. А тут вот взялся за системный кодинг, и автор использует в коде на языке С++ тоже функцию _getch(), но как видите с знаком подчеркивания, так сказать использует префикс "_"..
    Так вот мне стало интересно а в чем собственно разница и для чего он нужен?
     
  2. HulkRus

    HulkRus New Member

    Joined:
    6 Dec 2007
    Messages:
    17
    Likes Received:
    4
    Reputations:
    0
    гы-гы. Все зависит от компилятора(!), например в Билдере С++ от Борланд некоротые хреньки нужно так писать- __хрень =)
    Что же каcается __getch(). getch() от _getch() вообще-то ничем не отличается.
    В Борландовском conio.h вообще есть строка:
    Code:
    __inline int _getch( void ) { return getch(); }
    _getch() сделана только для того чтобы не заставлять кодера использовать extern "C" при вызове стандартных процедур из сишной библиотеки при работе в С++.
    По хорошему, если пишешь на С++, то и использовать надо cin и только cin. А чтобы при этом повторить функциональность kbhit()/getch()/ungetch() порождаешь собственный класс потомок IO_istream и в нем делаешь все необходимые донастройки :)