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