• Index

类型别名

Reads: 22

写代码的时候经常会遇到比较长的数据类型,这个时候可以在合适的范围内,给这个数据类型起一个别名,缩短名字的长度。

typedef

基础示例

#include <iostream> // std::cout std::endl std::boolapha
#include <type_traits> // std::is_same

int main(void)
{
    typedef unsigned long long ullong;

    ullong value = 1024;
    std::cout << "value的值是" << value << std::endl;

    bool issame = std::is_same<unsigned long long, ullong>::value;
    std::cout << std::boolalpha;
    std::cout << "unsigned long long和ullong是否相同:" << issame << std::endl;

    return 0;
}

输出结果:

value的值是1024
unsigned long long和ullong是否相同:true

基础讲解

using

关键字using有多个作用,其中一个作用就是为数据类型起别名。

基础示例

#include <iostream> // std::cout std::endl std::boolapha
#include <type_traits> // std::is_same

int main(void)
{
    using ullong = unsigned long long;

    ullong value = 1024;
    std::cout << "value的值是" << value << std::endl;

    bool issame = std::is_same<unsigned long long, ullong>::value;
    std::cout << std::boolalpha;
    std::cout << "unsigned long long和ullong是否相同:" << issame << std::endl;

    return 0;
}

基础讲解

可以看出只是将typedef unsigned long long ullong;改成了using ullong = unsigned long long;,其他代码没有改变。

typedef 和 using 的区别

using的出现是用来代替typedef的,在代码可读性上,使用using可以更加直观地看出哪个是原类型哪个是新类型,而且typedef在少数的某些情况,定义别名会比较复杂。

补充知识

使用using给数据类型起别名的这个功能,是从C++11开始引入的。


Comments

Make a comment

  • Index

WARNING: You are using an old browser that does not support HTML5. Please choose a modern browser (Chrome / Microsoft Edge / Firefox / Sarafi) to get a good experience.