zoukankan      html  css  js  c++  java
  • C学习笔记-typedef

    typedef是一种高级数据特性,它能使某一类型创建自己的名字

    typedef unsigned char BYTE;
    typedef struct man MAN;
    
    BYTE b = 0x12;
    
    1. #define不同,typedef仅限于数据类型,而不是能是表达式或具体的值
    2. typedef是编译器处理的,而不是预编译指令
    3. typedef#define更灵活

    直接看typedef好像没什么用处,使用BYTE定义一个unsigned char。使用typedef可以增加程序的可移植性

    通过typedef定义函数指针
    函数原型及调用

    const char *getsubstr(const char *src, const char *str)
    {
    	return strstr(src, str);
    }
    const char *func(const char *(*s)(const char *, const char *), const char *src, const char *str)
    

    使用typedef以后的函数调用

    const char *getsubstr(const char *src, const char *str)
    {
    	return strstr(src, str);
    }
    typedef const char *(*SUBSTR)(const char *, const char *);
    const char *func(SUBSTR p, const char *src, const char *str);
    

    在程序当中如果是定义一个可读的常量,适合用#define
    如果定义的是一个具体的数据类型,那么typedef更加适合。
    如果是定义一个函数指针,那么基本就typedef

  • 相关阅读:
    Linux(CentOS)下安装OMNet++
    Linux(CentOS)安装JDK
    给电脑安装Linux系统(CentOS)
    OmNet++遇到的问题
    数论倒数总结
    [AHOI2007]密码箱
    [AHOI2005]约数研究
    Spark scala groupBy后求和
    Scala Seq创建简单的Spark DataFrame
    Spark DataFrame分组后选取第一行
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664784.html
Copyright © 2011-2022 走看看