zoukankan      html  css  js  c++  java
  • C及C++中typedef的简单使用指南

    C及C++中typedef的简单使用指南

     

      又是在学数据结构的时候,发现了之前学习的知识遗忘很多,在发现对C/C++中关键字typedef的理解还是没有到位后,我翻阅了学C++用到的课本,又问了度娘,也看了不少关于typedef用法的博客。于是我就想把我理解的东西整理下来。

    一.基本解释

      typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。

      在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

    二.用法

    (1)用typedef声明一个新类型名来代替已有的类型名。如:

    typedef int Status  //指定标识符Status代表int类型
    typedef double DATE  //指定标识符DATE代表double类型

    这样下面代码等价:

    int i; double j;
    Status i;DATE j;

    (2)用typedef对数组类型起新名:

    typedef int NUM[100];//声明NUM为整数数组类型,可以包含100个元素
    NUM n;//定义n为包含100个整数元素的数组,n就是数组名

    (3)对一个结构体类型声明一个新名字:

    typedef struct  //在struct之前用了关键字typedef,表示是声明新类型名
    {
        int month;
        int day;
        int year;  
    } TIME; //TIME是新类型名,但不是新类型,也不是结构体变量名

     新声明的新类型名TIME代表上面指定的一个结构体类型,这样就可以用TIME定义该结构体变量,如:

    TIME birthday;
    TIME *P //p是指向该结构体类型数据的指针

    三.注意点

    (1)用typedef只是对已经存在的类型增加一个类型名,而没有创造一个新的类型。只是增加了一个新名字,可以用该名字定义变量,比如使用上文中的Status定义变量i;则i变量的类型为int型。

    (2)可以用typedef声明新类型名。但是不能用来定义变量

    四.优点

      使用typedef类型名,有利于程序的移植性。有时程序会依赖硬件特性。比如在某个C++系统用2个字节存一个int类型变量,用4个字节存一个long类型变量。而在另一个C++系统中以4个字节存放int类型变量。则把一个C++程序从一个用2个字节存一个int类型变量的C++系统移植到以4个字节存放int类型变量的C++系统时,如果原来用typedef声明int类型,则例如:

    Typedef  int INTEGER ; //原来这样写
    Typedef long INTEGER ; //移植后可以改为这样

    如果不是用typedef声明的,那每一处定义int类型的地方都要改,程序越大,工作量越大。

  • 相关阅读:
    QML中 Webview 元素的runJavaScript() 函数的使用方法
    Thinkphp 第二篇:如何将一个外部项目导入到Thimkphp环境中
    AMD电脑装完Winsows10后开机蓝屏,报错代码:cdmsnroot_s.sys
    JVM02——JVM运行时内存
    JVM01——JVM内存区域的构成
    JVM04——七个GC垃圾收集器
    JVM03——四种垃圾回收算法
    Mybatis的缓存机制详解
    mybatis插入insert操作,返回自增id
    mybatis批量查询-插入-删除
  • 原文地址:https://www.cnblogs.com/tsh292278/p/10481764.html
Copyright © 2011-2022 走看看