zoukankan      html  css  js  c++  java
  • 23、define宏定义和const的区别

    一、编译阶段

    1.define是在编译的预处理阶段起作用,而const是在编译、运行的时候起作用

    二、安全性

    1.define只做替换,不做类型检查和计算,也不求解,容易产生错误,一般最好加上一个大括号包含住全部的内容,要不然很容易出错

    2.const常量有数据类型,编译器可以对其进行类型安全检查

    三、内存占用

    1.define只是将宏名称进行替换,在内存中会产生多分相同的备份。const在程序运行中只有一份备份,且可以执行常量折叠,能将复杂的的表达式计算出结果放入常量表

    2.宏替换发生在编译阶段之前,属于文本插入替换;const作用发生于编译过程中。

    3.宏不检查类型;const会检查数据类型。

    4.宏定义的数据没有分配内存空间,只是插入替换掉;const定义的变量只是值不能改变,但要分配内存空间。

  • 相关阅读:
    HTTP协议图解
    .NET 发布网站步骤
    使用php在服务器端生成图文验证码
    SQLServer复习文档1(with C#)
    理解 JavaScript 原型 / 原型链
    浅谈瀑布流
    懒加载
    jQuery ajax
    jQuery 动画效果 与 动画队列
    jQuery 事件
  • 原文地址:https://www.cnblogs.com/crbhf/p/14920197.html
Copyright © 2011-2022 走看看