Зачем добавляют _

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by sailor_truse, 29 Oct 2011.

  1. sailor_truse

    sailor_truse Banned

    Joined:
    27 Sep 2011
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    За каким х$#м добавляют частенько к названиям функций или переменных _ или __ и тд?
     
  2. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    Читай мировые стандарты и все поймешь !!!
     
  3. Lee_fx

    Lee_fx Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    Я такое использую для имен переменных в классах, обычно тех, которые в private секции.
     
  4. sailor_truse

    sailor_truse Banned

    Joined:
    27 Sep 2011
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    Кинь ссылку где написано, что это хороший тон.

    Про юзерпик:а мя не раздражает
     
  5. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Есть типо условный договор программистов писать разборчево=)
    я тоже этого поддерживаюсь
    вот например сейчас пишу софт...
    Code:
    private int count_proxy = 0;
    private int count_valid = 0;
    private int count_not_valid = 0;
     
  6. sailor_truse

    sailor_truse Banned

    Joined:
    27 Sep 2011
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    да нет так и я люблю писать, я про _var_name; т.е. когда перед именем.
     
  7. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Если речь, например, о C++, то в стандарте сказано, что добавлять _ или __ перед именами запрещается, так как такие именования используются внутренними библиотеками (в частности, STL). Про другие стандарты или рекомендации по написанию кода ничего сказать не могу, надо читать соответствующую документацию.
     
  8. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    нельзя сказать точно.зависит иногда даже от яп и компилятора.к примеру в масме начало метки можно оглавлять с любой буквы,в то время как в тасме все метки начинаются с _.Часто используется _ например при одном названии функции,в сплайсинге.либо например та или иная процедура отображает действие то что бы читабельность была например:
    Code:
    msgbox_caIl:
    push 0
    push 0
    push 0
    push 0
    call MessageBoxA
    ну и т.д.
     
    #8 DooD, 29 Oct 2011
    Last edited: 29 Oct 2011
  9. Lee_fx

    Lee_fx Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    Раз используются в STL, то надо как на пример смотреть, а тут прямо табу. Веселая рекомендация, со стороны выглядит как патент на подчеркивание)
     
  10. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Как табу прописано в стандарте, и, кстати, вполне обосновано. При наследовании классов STL имя с _ или __ в начале может совпасть с каким-то внутренним именем в классе STL. Private-переменные в собственных классах могут либо с m_ начинаться (что напоминает венгерскую нотацию), либо заканчиваться на _ (я предпочитаю второй вариант).
     
  11. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    на мой взгляд имена без отрицания естественней
    например вместо функции
    Code:
    	if (IsNotAlive(...))
    
    использовать
    Code:
            if (IsDead(...))
    
    или вместо переменной
    Code:
            if (count_not_valid ...)
    
    использовать
    Code:
            if (count_bad ...)
    
    хотя это польностью дело вкуса конечно