【自用12.】C++类型定义

什么是类型定义

typedef 是一个高级数据特性,它可以为某一 类型 自定义名称 , 即类型的别名。

为什么要使用类型定义 

1.简化写法

2.提高程序可移植性

//64 位 linux 系统

#include 
#include 

typedef long int64;

int main(void){
    int64 dream = 10000000000; //梦想一百亿
    printf("dream: %lld\n", dream);
    printf("sizeof(int64): %d\n", sizeof(int64));
    return 0;
}

运行结果:

dream: 10000000000
sizeof(int64): 8

//32 window 系统

#include 
#include 

typedef long long int64;

int main(void){
    int64 dream = 10000000000; //梦想一百亿
    printf("dream: %lld\n", dream);
    printf("sizeof(int64): %d\n", sizeof(int64));

    system("pause");
    return 0;
}

 运行结果:

dream: 10000000000
sizeof(int64): 8

 

解读:在Windows的64位系统中long类型的变量是八位的,可以存储一百亿这个数字,而在Windows的32位系统中long long类型才可以存储一百亿这个数字,如果我们编写的代码很长,则在不同位数的系统中需要修改非常多的变量类型,如果使用了类型定义就可以大大减少工作量,只需要修改类型变量就可以了。

类型定义的使用

#include 
#include 

typedef char * STRING;
#define STR char *

int main(void){
    STRING s1, s2; //等同于 char *s1; char *s2;
    char name[] = "Martin";
    s1 = name;
    s2 = name;
    STR s3, s4; // char * s3, s4;
    s3 = name;
    s4 = name[0];
    system("pause");
    return 0;
}

 解读:define是非常简单的替换,就是文字的替换,替换之后的文字所表达的是什么意思就是什么意思。但是类型定义不一样,可以理解为类型定义的替换,直接就是这个类型的替换了。

define替换之后按文字字面意思理解,比如 STR s3,s4; 就是char * s3,s4; 这个语句的字面意思就是一个char类型的指针变量和一个char类型的变量,所以STR s3,s4;也就是定义了一个char类型的指针变量s3和一个char类型的变量s4.

类型定义替换之后是对整个类型的替换,比如 STRING s1,s2;就是 char * s1, * s2; 它对s1和s2的类型都进行了替换,所以STRING s1,s2;也就是定义了两个char类型的指针变量,即s1和s2。

你可能感兴趣的:(C++,学习笔记,c++,算法,开发语言)