在delphi中可以用堆栈吗?

wangxinqwe 2005-08-03 04:03:43
在delphi中可以用堆栈吗?应该怎么用呢?怎样入栈和出栈呢?
...全文
196 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
padfan 2005-11-22
  • 打赏
  • 举报
回复
再请问一下:为什么
我入栈多次,然后出栈时,发现数据都不对。只有最后一个入栈的是正确的。

请问这是什么原因阿?
LocustWei 2005-08-04
  • 打赏
  • 举报
回复
asm
push eax
mov eax, [p]
....
pop eax
end;
ikumei 2005-08-04
  • 打赏
  • 举报
回复
delphi没有int 只有integer
何鲁青 2005-08-04
  • 打赏
  • 举报
回复
^_^
wangxinqwe 2005-08-04
  • 打赏
  • 举报
回复
pop呢?
b := a.pop;
或是
b := int(a.pop);
都不行!
ikumei 2005-08-04
  • 打赏
  • 举报
回复
Tstack可以被称作万能标准堆栈,原因是 里面存放的是无类型指针(实际指针本身就是无类型的) 而不是 某个实体的副本
所以他并不需要知道被存放对象的具体类型
var
a: Tstack;
b: integer;
begin
b := 1;
a := Tstack.Create;
a.Push(pointer(b));
end;
这样就可以,还免去指针的麻烦,应为 integer与pointer类型本质上都是32位整数
但对于delphi来说integer与pointer是完全不同的类型
wangxinqwe 2005-08-04
  • 打赏
  • 举报
回复
var
a: Tstack;
b: integer;
begin
b := 1;
a := Tstack.Create;
a.Push(b);
end;
为什么提示数据类型不匹配(整形和指针型)?
wangxinqwe 2005-08-04
  • 打赏
  • 举报
回复
多谢
todouwang 2005-08-03
  • 打赏
  • 举报
回复
用汇编,asm开头
wananqwe 2005-08-03
  • 打赏
  • 举报
回复
多谢,我去试一试,不懂再问
Eastunfail 2005-08-03
  • 打赏
  • 举报
回复
uses Contnrs;
使用TStack类

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧