• #define 定义与 typedef


    #define 

    #define宏用于定义预处理的替换规则

    简单来说,#define 就是最简单的字符串替换 #define ll long long 就会把程序中所有的 ll 替换成 long long 而程序在运行时根本不会出现过 ll 他把 ll 默认理解为 long long  

    在一些c语言考试中可能会出一些 #define b a*5  #define a 2+3 问你输出b的值为多少,不要擅自把a理解为2+3=5,而是把他全都替换掉b=2+3*5=17,到这里,你可能就能理解替换的概念了

    代码在正式编译前的预处理阶段,预处理器会根据代码中所有"#define"宏定义进行严格的替换,从该宏定义开始的地方起到文件结束或遇到对应的"#undef"指令为止

    如果代码中有跟宏定义相关错误,则会在预处理阶段报错

    typedef=type+def

    "typedef"操作基于现有数据类型定义一个新的数据类型,原有数据类型依然存在,其会在编译阶段由编译器识别并处理。typedef int INT 这时INT就是一个int型的数据类型

    typedef语句=typedef + 变量定义语句

    去掉typedef,这个语句定义了一个变量

    加上typedef,这个变量是什么类型,那它就变成了这个类型的别名

    另外

    typedef在定义指针的时候

    typedef char *ch;

    ch a,b;

    你定义了两个char *型的变量是完全没有问题的,但是你要是用#define 的话

    #define ch char *

    ch a,b;

    就相当于是char *a,b; 你b的数据类型变成了char

  • 相关阅读:
    Nginx入门(三)——正向代理
    Nginx入门(二)——双机热备
    Socket
    TCP和UDP
    主线程等待子线程结束后再运行
    H5s播放rtsp和rtmp视频
    Thread.sleep()和Thread.currentThread().sleep()区别
    OpenLayer3入门——[一]
    事件绑定
    cmake和json安装
  • 原文地址:https://www.cnblogs.com/YangKun-/p/12518983.html
Copyright © 2020-2023  润新知