温故而知新


迄今为止的职业生涯中,有过两次集中时间学习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++标准变迁的角度,都到了温故而知新的时候了。


准备


本人的习惯,不管干什么都要先拉好架子,所以就买了下面这本书。


C++11新特性(1)-long long_c++11


开始我们的学习进程吧。


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混淆,还是用大写的吧。



阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】


C++11新特性(1)-long long_新特性_02