для C ++,
$ cat name.cpp
int main() {
int a = 74678;
int bcdefghijklmnopqrstuvwxyz = 5664;
}
$ g++ -S name.cpp
$ cat name.s
.file "name.cpp"
.text
.align 2
.globl main
.type main, @function
main:
.LFB2:
pushl %ebp
.LCFI0:
movl %esp, %ebp
.LCFI1:
subl $8, %esp
.LCFI2:
andl $-16, %esp
movl $0, %eax
addl $15, %eax
addl $15, %eax
shrl $4, %eax
sall $4, %eax
subl %eax, %esp
movl $74678, -4(%ebp)
movl $5664, -8(%ebp)
movl $0, %eax
leave
ret
.LFE2:
.size main, .-main
.section .note.GNU-stack,"",@progbits
.ident "GCC: (GNU) 3.4.6 20060404 (Red Hat 3.4.6-11.0.1)"
$
Как видите, ни a
, ни bcdefghijklmnopqrstuvwxyz
не отражаются на выходе ассемблера. Таким образом, длина имени переменной не имеет значения во время выполнения с точки зрения памяти.
Но имена переменных вносят огромный вклад в разработку программы. Некоторые программисты даже полагаются на хорошие соглашения об именах вместо комментариев, чтобы объяснить дизайн своей программы.
Соответствующая цитата из Hacker News ,
Код должен быть написан так, чтобы полностью описывать функциональные возможности программы для читателей, и только случайно для интерпретации компьютерами. Нам трудно долго помнить короткие имена, и нам тяжело смотреть на длинные имена снова и снова подряд. Кроме того, короткие имена имеют более высокую вероятность коллизий (поскольку пространство поиска меньше), но их легче «удерживать» в течение коротких периодов чтения.
Таким образом, наши условные обозначения имен должны учитывать ограничения человеческого мозга. Длина имени переменной должна быть пропорциональна расстоянию между ее определением и использованием и обратно пропорциональна частоте использования.