2016-06-15 47 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. 

atoiatolatof來自C及其教父最有可能被認爲是Ken Thompson UNIX操作系統的共同創始人和B programming language的創作者是C語言的前身。該名稱在第一UNIX Programmer's Manual November 3, 1971提到的,正如你可以在主人的標籤看到ken提到這是肯·湯姆森綽號:

enter image description here

enter image description here

stoistolstollstof,stodstold從C++ 11開始就有了C++。因此,命名一定是C++委員會的一致決定。原始提案N1803雖然可以追溯到2005年。但是我無法在提案中找到爲什麼在這些名稱之後命名這些函數。我的猜測是,他們可能想要保持上述C「等價物」的一致性。

+3

有趣的事實是,這些功能將同樣適用於EBCDIC字符表。 –

+2

11/3/71 - 哇。你真的有這本書嗎? –

+0

@JaredBurrows當時我還沒有將父親的想法作爲一個概念構思出來。 – 101010