2016-06-15 1 views
16

Я понимаю, что говорят эти функции, но я не могу догадаться, как их имена были созданы, за исключением того, что последняя буква из возвращаемого типа.Что стоят atoi, atol и stoi?

+4

ascii to int и т. Д. –

+1

Программисты были ленивыми, и им нужно было короткое имя для своих функтонов, поэтому было бы быстрее написать их с помощью клавиатуры. 4 писем было достаточно, их даже считали слишком длинными, но они все равно держали его, слишком ленив, чтобы изменить их. –

+0

** a ** rray to ** i ** nt –

ответ

28
atoi -> ASCII to integer. 
atol -> ASCII to long. 
atof -> ASCII to floating. 
stoi -> string to integer. 
stol -> string to long. 
stoll -> string to long long. 
stof -> string to float. 
stod -> string to double. 
stold -> string to long double. 

atoi, atol, atof родом из C и его крестный отец, скорее всего, считается Ken Thompson сотворец операционной системы UNIX и создателем B programming language, который является предшественником языка программирования Си. Названия упоминаются в первом UNIX Programmer's Manual November 3, 1971 и, как вы можете видеть на этикетке владельца ken упоминается что прозвище Кен Томсон:

enter image description here

enter image description here

stoi, stol , stoll, stof, stod и stold попал на C++ с C++ 11. Следовательно, именование должно было быть единогласным решением комитета C++. Первоначальное предложение N1803 было датировано еще в 2005 году. Я не смог найти в предложении, почему названные эти функции после этих имен. Я предполагаю, что, вероятно, они хотели сохранить единообразие со своими эквивалентами C ", упомянутыми выше.

+3

Интересным фактом является то, что эти функции будет одинаково хорошо работать для таблиц символов EBCDIC. –

+2

11/3/71 - ничего себе. У вас есть эта книга в реальной жизни? –

+0

@ JaredBurrows Я тогда не был задуман даже как концепция в голове моего отца. – 101010

Смежные вопросы