C++11新特性-long long 類型
溫故而知新
迄今為止的職業(yè)生涯中,有過兩次集中時間學(xué)習(xí)C++的經(jīng)歷。
第一次大概是在1994年前后,那時非計算機專業(yè)大學(xué)畢業(yè)剛接觸C++,學(xué)的是還是BorlandC++3.1的手冊。許多東西都是一知半解就開始了應(yīng)用,但即使是這樣,還是充分感覺到C++的強大,非常喜歡C++帶來的那種充分控制,無所不能的感覺。
第 二次是在2006年前后,正好工作有一段空閑時間,學(xué)的是《C++ Primer第三版》,《C++ Programing》還有《Effective C++》。經(jīng)過十多年的實際運用再讀C++的經(jīng)典著作,結(jié)合自己地編程實踐,算是對C++有個一個比較全面的理解,感覺收獲頗豐。
一晃十多年又過去了,這段時間C++經(jīng)歷了C++11,C++14,目前的最新版是C++17。無論是從時間間隔的角度,還是C++標(biāo)準(zhǔn)變遷的角度,都到了溫故而知新的時候了。
準(zhǔn)備
本人的習(xí)慣,不管干什么都要先拉好架子,所以就買了下面這本書。
開始我們的學(xué)習(xí)進程吧。
long long類型
數(shù)據(jù)類型long long是在C++11中重新定義的,標(biāo)準(zhǔn)規(guī)定它最小是64bit。
在這之前為了提供超過32bit的整數(shù),各個開發(fā)環(huán)境(編譯器)分別定義了各自的64bit整數(shù)類型。結(jié)果當(dāng)然就是影響了代碼地兼容性。
現(xiàn)在好了。C++11直接定義了long long類型。
我猜許多人應(yīng)該使用過這個類型,當(dāng)然在C++11之前,這種嘗試會被編譯器無情拒絕,自C++11之后就不會在發(fā)生這樣地情況了。因此我認為:在C++11新特性中,long long一定是最容易被接受的一個。多數(shù)程序員看到它時甚至不會意識到這是一個新特性。
相應(yīng)地,C++11規(guī)定:在指定long long字面值類型時,使用ll或LL。這也可以從long的l或L推斷出來。
另外,也可以像long類型字面值一樣使用U后綴已表明這時一個無符號數(shù)。
2LL
3ll
100ULL
小寫的ll雖然合法,但是容易和數(shù)字1混淆,還是用大寫的吧。
拜托