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

  • 相关阅读:
    使用telnet模拟http请求
    07_Python变量内存地址、小数据池
    04_Linux命令
    03_Linux文件和目录
    06_Python Encoded
    05_Python Format Operation
    04_Python Data Structures
    02_Python基本数据类型
    01_软件开发流程
    03_线性表应用一:栈
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664785.html
Copyright © 2011-2022 走看看