网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月15日
漏签
0
天
c语言吧
关注:
792,405
贴子:
4,311,915
看贴
图片
吧主推荐
视频
游戏
12
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
#define 与const 符号常量和常变量的区别
只看楼主
收藏
回复
鬼谷尊
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
今天徒弟问了我这么一个问题,define与const有什么区别。在平时写程序的时候我也没想过有什么区别,不过经过我一番实验,结果还是得到了。
鬼谷尊
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
现在上图
优视科技(中国)有限公司
试卷课件,丰富资源,助力学业
2024-09-15 16:56
广告
立即查看
魔界的小天使
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
宏定义是写给编译器看的,编译的时候会直接展开
鬼谷尊
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
图左边是c语言代码,右边是翻译的汇编指令。 大家都应该知道,编译器会把c代码翻译成汇编代码,然后生成obj文件,最后连接生成exe 。我说这些你不懂也没关系。请继续往下看。
替身使者
彩虹面包
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
const 是变量
鬼谷尊
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
ptr [ebp-4]就是变量i,后面的64h是十六进制数,翻译成十进制就是100 , Mov 意思是把100放入那个地址里面,也就是让变量i等于100
鬼谷尊
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
另一个意思是把b地址里面的数放到i的地址里面。就是把b给i。
鬼谷尊
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
整体来看就是,define 定义的内容是给编译器来看的,产生程序之前编译器就会先把你define的数都替换掉,然后在进行生成程序,而const 是把你定义的数放入内存中的数据段,等你用的时候从地址上进行查找。 一般来说用define 速度会比const快。
鬼谷尊
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
但是一般define是为了防止库的重复引用而使用的。 就是你们经常看到的#IFDEF变量 DEFINE ENDIF 这样的代码
ghj123h
葱の帝球
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
#define是复制粘贴文字
const是复制粘贴文件
这是区别。
讠朱仙
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
define 无类型检查所以可以把一个东西拆开表示,而且可以根据编译器本身的不同产生不同的宏,这样保持代码形势上的统一,比如stl_config 里面定义了大量这种宏
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示