社区
汇编语言
帖子详情
白痴问题求大神点拨。。db ? 和db 0有什么区别?
number_lock
2012-02-14 05:54:27
如果db ?在内存单元存入的是00h,那么和db 0有什么区别?
...全文
187
11
打赏
收藏
白痴问题求大神点拨。。db ? 和db 0有什么区别?
如果db ?在内存单元存入的是00h,那么和db 0有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tishion
2012-02-15
打赏
举报
回复
[Quote=引用 6 楼 number_lock 的回复:]
引用 4 楼 otishiono 的回复:
跟编译器有关的。
你用的编译器编译后存储的是0
换到别的系统,别的编译器就不一定是0了。
比如VS2008 为初始化的变量的值是 0xcccccccc
我用的编译器编译后存储是0
那么,如果所有用到db ?的地方都用db 0代替,会出现什么问题?
[/Quote]
这个没有什么问题啊。如果你用db 0来定义就是你把这些内存都用0填充了。
在高级语言里面比如C语言里面,定义变量之后安全起见都最好初始化为你自己指定的值,以防发生不可预料的错误。也就是不建议声明变量后不进行初始化操作。
而汇编语言里面
db ? 的作用就相当于声明变量(内存空间)却不对其赋你指定的初始值,这样的话就是编译器负责填充(赋值)。
db 0 就是声明变量(内存空间)并且用0填充(赋值)
ckc
2012-02-15
打赏
举报
回复
不同的编译器处理不完全相同
写程序时最好采用谨慎原则,就是说不要依赖一些隐含的,编译器相关的特性
比如db ?
你如果认为它的初始值就是0,那就错了
也许某编译器或者某操作系统下这样做确实可以,但是,你不应该依赖这个
把db ?全部写成db 0
从处理结果上来说没有问题,然而,如果是不必要初始化的数据区,就多了初始化的工作,
从效率上来说是有损失的。另外,db ?和db 0有可能会严重影响编译后的代码的大小,
db 0的话有可能会放入数据区,也就是说可执行文件会因此变大,而db ?应该就不会有这个问题,
当然,这个细节也是具体环境相关的。
其实这种问题不要想太多,水到渠成的理解是最好的。
db 0和db ?这两个你就记住:如果需要初始值为0就用db 0,否则就用db ?
火雲邪神
2012-02-15
打赏
举报
回复
db 0 ;初始化是零
db ?;未初始化,也许是零,也许不是零,不确定。
sulsansan
2012-02-15
打赏
举报
回复
这个好像C里面的++i和i++相加一样吧,不同的编译器有不同的处理
1az98你好
2012-02-14
打赏
举报
回复
? 告诉编译器:你不必为我初始化这块内存。所以它的值为其他操作留下的0或1的bit串
0 告诉编译器:生成源程序时你要生成一些代码来将这块内在初始化为 0
number_lock
2012-02-14
打赏
举报
回复
[Quote=引用 4 楼 otishiono 的回复:]
跟编译器有关的。
你用的编译器编译后存储的是0
换到别的系统,别的编译器就不一定是0了。
比如VS2008 为初始化的变量的值是 0xcccccccc
[/Quote]
我用的编译器编译后存储是0
那么,如果所有用到db ?的地方都用db 0代替,会出现什么问题?
masmaster
2012-02-14
打赏
举报
回复
db 0 ;初始化是零
db ?;未初始化,也许是零,也许不是零,不确定。
Tishion
2012-02-14
打赏
举报
回复
跟编译器有关的。
你用的编译器编译后存储的是0
换到别的系统,别的编译器就不一定是0了。
比如VS2008 为初始化的变量的值是 0xcccccccc
leetow2003
2012-02-14
打赏
举报
回复
默认情况下都是0
number_lock
2012-02-14
打赏
举报
回复
[Quote=引用 1 楼 gsy999 的回复:]
引用楼主 number_lock 的回复:
如果db ?在内存单元存入的是00h,那么和db 0有什么区别?
书上能没讲到吗?
db ? ;声明一个一字节的变量,但不对这个变量进行初始化.(即里面的初值是什么是不确定的)
db 0 ;声明一个一字节的变量,并初始化为0
[/Quote]
我编译出来,?那个单元里的值就是0
gsy999
2012-02-14
打赏
举报
回复
[Quote=引用楼主 number_lock 的回复:]
如果db ?在内存单元存入的是00h,那么和db 0有什么区别?
[/Quote]
书上能没讲到吗?
db ? ;声明一个一字节的变量,但不对这个变量进行初始化.(即里面的初值是什么是不确定的)
db 0 ;声明一个一字节的变量,并初始化为0
oracle 11g审计查看,oracle 11g 审计测试
oracle 11g 审计测试1.开启审计(
db
_Extended方式)alter system set audit_trail=
db
_extended scope=spfile;shutdown immediatestartup2.查看是否开启审计SQL> show parameter auditNAME TYPE ...
oracle 对象的审计,oracle 11g关于权限审计的不理解
oracle 11g 审计测试1.开启审计(
db
_Extended方式)alter system set audit_trail=
db
_extended scope=spfile;shutdown immediatestartup2.查看是否开启审计SQL> show parameter auditNAME TYPE ...
.NET(C#) 操作 h2 数据库【记录整个研究过程...】
说到为什么要用C#来调用Java数据库h2,原因是制作了一个C#的工具,来对网页服务进行部署,主要是进行一些环境的检查,因为对C#比较熟悉,所以就首先选择了C#语言来做winform程序。 但是当这个程序完成以后,发现...
java安装的时候无效参数_使用Oracle 11g时,保存数据时SQLException: 调用中的无效参数...
背景与
问题
描述:项目环境:jfinal:3.5,druid:1.0.29,oracle11g 驱动:oj
db
c6.jar项目开发完成时切换到Oracle 11g数据库时,某张表save的时候发生SQL异常,奇怪的是同一个映射文件中的其他表插入时没有
问题
.(H表有
问题
,...
我将系统从Windows迁移至Linux下的点点滴滴
本文对任何一个人有帮助都是我莫大的荣幸,任何一个
大神
对我的
点拨
,我都会感激不尽。 二、技术选型 在2013年8月低的时候,公司中了XXX市场监督局肉品配送车辆监控的项目。整个系统软件部分需要实现的功能不难,...
汇编语言
21,497
社区成员
41,618
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章