• define宏定义和const常变量区别


    1.define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。
    const定义的常量,在程序运行时在常量表中,系统为它分配内存。
    2.define定义的常量,预处理时只是直接进行了替换。所以编译时不能进行数据类型检验。
    const定义的常量,在编译时进行严格的类型检验,可以避免出错。
    3.define定义表达式时要注意“边缘效应”,例如如下定义:
        #define N 2+3 //我们预想的N值是5,我们这样使用N
        int a = N/2;  //我们预想的a的值是2.5,可实际上a的值是3.5
    原因在于在预处理阶段,编译器将 a = N/2处理成了 a = 2+3/2;这就是宏定义的字符串替换的“边缘效应”因此要如下定义:
        #define N (2+3)
    const定义表达式没有上述问题。
    const定义的常量叫做常变量原因有二:
    const定义常量像变量一样检查类型
    const可以在任何地方定义常量,编译器对它的处理过程与变量相似,只是分配内存的地方不同

  • 相关阅读:
    nmap加快扫描速度(转载)
    deepin换源
    利用74HC595实现的流水灯 Arduino
    解决用vscode开发arduino时Serial未定义
    JS获取格式为YYYY-MM-DD的当前日期
    链式前向星存图
    Nginx+FFmpeg实现RTSP转RTMP
    非root用户安装centos的jdk
    Nginx配置请求头
    Eclipse-Che 安装(Centos)
  • 原文地址:https://www.cnblogs.com/weiboyuan/p/5082373.html
Copyright © 2020-2023  润新知