Что означают atoi, atol и stoi?

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


person yesennes    schedule 15.06.2016    source источник
comment
Раньше программисты были ленивы, и им нужны были короткие имена для их функций, чтобы быстрее было писать их с помощью клавиатуры. 4 буквы было вполне достаточно, это даже посчитали слишком длинным, но все равно сохранили, поленившись их менять.   -  person Antoine Pelletier    schedule 15.06.2016
comment
aмассив в int   -  person el.pescado    schedule 15.06.2016
comment
@AntoinePelletier Я бы не сказал, что ленив, я бы сказал, что память ограничена. Помните, что C был написан на невероятно ограниченном аппаратном обеспечении (оперативная память измерялась в байтах или, возможно, в килобайтах). Я полагаю, что C изначально имел 8-символьное ограничение на имена функций. Я лично работал над системой, которую вы не могли скомпилировать и скомпоновать в одной и той же командной строке из-за того, что они занимают /всего/ 64 КБ оперативной памяти во всей (многопользовательской) системе!   -  person Neil    schedule 15.06.2016
comment
@Нил, я просто пошутил, я должен был добавить факт Чака Норриса в свой пост, чтобы сделать его очевидным   -  person Antoine Pelletier    schedule 15.06.2016
comment
@AntoinePelletier Я пропустил этот свистящий звук, когда твоя шутка пролетела над моей головой :-)   -  person Neil    schedule 16.06.2016


Ответы (1)


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, и его крестным отцом, скорее всего, считается Кен Томпсон -создатель операционной системы UNIX и создатель языка программирования B, который является предшественник языка программирования C. Имена упоминаются в первом Руководстве программиста UNIX от 3 ноября 1971 г. и, как вы можете видеть, в этикетке владельца упоминается ken, что является прозвищем Кена Томсона:

введите описание изображения здесь

введите описание изображения здесь

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

person 101010    schedule 15.06.2016
comment
Интересным фактом является то, что эти функции будут одинаково хорошо работать для таблиц символов EBCDIC. - person πάντα ῥεῖ; 15.06.2016
comment
03.11.71 - вау. У вас есть эта книга в реальной жизни? - person Jared Burrows; 15.06.2016
comment
@JaredBurrows В то время мой отец не задумывался даже как концепция. - person 101010; 15.06.2016
comment
@101010 Хорошо. Я был серьезен, потому что у меня до сих пор есть книга на С, которую дал мне отец. - person Jared Burrows; 15.06.2016
comment
@JaredBurrows Я думаю, приятно иметь отца, который жил в начале информационного века, есть о чем поговорить :). Хотя там, откуда я родом, моим родителям не так повезло, в то время это было бы достижением, если бы ребенок закончил начальную школу. Книги были редкостью, и во многих частях страны не было электричества. Благодаря США, стране свободных и родине смелых, у нас теперь есть Интернет, и эти книги, как и многие другие, доступны для всех онлайн. - person 101010; 16.06.2016
comment
@101010 Круто сюда! Спасибо за отличный ответ и изображение. - person Jared Burrows; 16.06.2016