zoukankan      html  css  js  c++  java
  • 120、define、const、typedef、inline的使用方法?他们之间有什么区别?

    一、const与#define的区别:

    1) const定义的常量是变量带类型,而#define定义的只是个常数不带类型;

    2) define只在预处理阶段起作用,简单的文本替换,而const在编译、链接过程中起作用;

    3) define只是简单的字符串替换没有类型检查。而const是有数据类型的,是要进行判断的,可以避免一些低级错误;

    4) define预处理后,占用代码段空间,const占用数据段空间;

    5) const不能重定义,而define可以通过#undef取消某个符号的定义,进行重定义;

    6) define独特功能,比如可以用来防止文件重复引用。

    二、 #define和别名typedef的区别

    1) 执行时间不同,typedef在编译阶段有效,typedef有类型检查的功能;#define是宏定义,发生在预 处理阶段,不进行类型检查;

    2) 功能差异,typedef用来定义类型的别名,定义与平台无关的数据类型,与struct的结合使用等。 #define不只是可以为类型取别名,还可以定义常量、变量、编译开关等。

    3) 作用域不同,#define没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用。 而typedef有自己的作用域。

    三、 define与inline的区别

    1) #define是关键字,inline是函数;

    2) 宏定义在预处理阶段进行文本替换,inline函数在编译阶段进行替换;

    3) inline函数有类型检查,相比宏定义比较安全;

  • 相关阅读:
    实战-百度云[大文件/文件夹]下载限制破解
    IOCP之客户端及消息传递
    IOCP简单实现
    Charles V4系列更新 | 绿色特别版 | 视频教程
    Charles 3.11.5 绿色特别版
    VC运行库合集2005/2008/2010/2012/2013/2015
    手游测试之《弱网测试》
    后端性能测试不可不知的二三事
    linux性能指标及分析工具
    Shell笔记-04
  • 原文地址:https://www.cnblogs.com/crbhf/p/15025699.html
Copyright © 2011-2022 走看看