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

  • 相关阅读:
    pat00-自测5. Shuffling Machine (20)
    Spiral Matrix
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Best Time to Buy and Sell Stock II
    4Sum
    3Sum Closest
    3Sum
    MySQL存储过程、函数和游标
    Word Ladder
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664785.html
Copyright © 2011-2022 走看看