VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 445|回复: 1

[交流] 【实用C++】新手教程 第六课 作业

[复制链接]
74_avatar_middle
在线会员 发表于 2018-6-26 22:40:36 | 显示全部楼层 |阅读模式
本帖最后由 jiaokai123 于 2018-6-27 16:16 编辑

6、小作业:
请大家课后查找const常变量和#define宏定义有什么区别呢?


答:
        1:#define 定义之后 预处理器在程序未编译之前就已经处理  const 是编译时处理
        2:实验表示 #define定义之后 不受 {}括号作用域影响  const会受{}括号作用域影响
        3:实验表示 #define定义之后 在函数里不占目前函数栈空间  const会根据类型不同占用目前函数栈空间。
         且#define 上面的代码会不认识#define

注:实验是在OD中做的。




实验代码如下

void Define_test()
{
        #define cs 10
        printf("%d",cs);
}
void Const_test()
{
        const int iInt=12;
        printf("%d",iInt);
}

int main(int argc, char* argv[])
{
       
        Define_test();//抬起堆栈为40
        Const_test();//抬起堆栈为 44
       
        getchar();
        return 0;
}




上一篇:【实用C++】新手教程 第五课作业
下一篇:【实用C++】新手教程 第八课 作业
74_avatar_middle
ico_lz  楼主| 发表于 2018-6-27 01:02:32 | 显示全部楼层
改错,口误,是不受
{}括号作用域 影响 且#define 上面的代码会不认识#define
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-10-18 15:37

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表