首页
社区
课程
招聘
[求助]求助WIN32汇编编程问题
发表于: 2013-7-17 05:37 3958

[求助]求助WIN32汇编编程问题

2013-7-17 05:37
3958
初学WIN32汇编编程,有一问题不解,如下代码:

.386
.model flat,stdcall
option casemap:none
include e:\radasm\masm32\include\windows.inc

include e:\radasm\masm32\include\kernel32.inc
includelib e:\radasm\masm32\lib\kernel32.lib

include e:\radasm\masm32\include\user32.inc
includelib e:\radasm\masm32\lib\user32.lib

.data
caption db "caption"
text db "text"

.code
start:
	invoke MessageBox,NULL,ADDR text,addr caption,MB_OK
	invoke ExitProcess,0
end start


上面代码中,声明变量的部分,我看书中  ,是这样写的:

.data
caption db "caption",0
text db "text",0

请问,后面加 0  跟不加 0  ,有什么区别呢?  我试过不加0 , 也能正常运行.

是以"null'终止的字符串的意思咩? 如果我不加0,在哪些情况下可能导致程序异常呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
api访问字符串是以0为结尾标志的,如果你不加0,那么就会导致无"结尾".结果将"不可预测"
2013-7-17 06:15
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=学雄;1199628]api访问字符串是以0为结尾标志的,如果你不加0,那么就会导致无"结尾".结果将"不可预测"[/QUOTE]

但是不加0  为何也能正常运行呢
2013-7-17 06:57
0
雪    币: 792
活跃值: (392)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
如图:
上传的附件:
2013-7-17 07:05
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=冰壶菩提;1199637]如图:
[/QUOTE]

擦   原来是这样   我还真没注意标题呢
2013-7-17 07:14
0
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
0是字符串结尾标志
2013-7-17 08:54
0
雪    币: 398
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
那说明你运气好,变量的后面刚好就是0,所以你不加也没事,但这存在不可预测的问题。。
2013-7-17 09:28
0
游客
登录 | 注册 方可回帖
返回
//