zoukankan      html  css  js  c++  java
  • #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

  • 相关阅读:
    八数码问题--bfs
    子集生成——增量构造法
    回溯法
    子集生成——二进制法
    子集生成
    dfs 记忆搜索——注意剪枝方式
    pyhon---信息的爬取与提取---bs4,BeautifulSoup,re库
    008sudo用户管理
    007Linux在线升级yum
    006NFS与TFTP服务器
  • 原文地址:https://www.cnblogs.com/YangKun-/p/12518983.html
Copyright © 2011-2022 走看看