C语言中可以直接用PUSH()POP()吗

youjianwanlei 2009-03-16 07:55:09
C语言中可以直接用PUSH()POP()吗
...全文
1494 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sco_field 2009-03-16
  • 打赏
  • 举报
回复
只能用内嵌的__asm{}才行的,不好直接用。
killbug2004 2009-03-16
  • 打赏
  • 举报
回复
内嵌汇编
__asm
{
push eax
;......
}
mqiqe 2009-03-16
  • 打赏
  • 举报
回复
真接用是不行的
要是用c++可以用stl
pega_windy 2009-03-16
  • 打赏
  • 举报
回复
不行的吧!
除非嵌
youjianwanlei 2009-03-16
  • 打赏
  • 举报
回复
哦,要自己定义的.
我还以为可以直接用呢
xidianxiancai 2009-03-16
  • 打赏
  • 举报
回复
这是个压栈出栈操作,应该不行的吧。要定义函数才能实现的吧
typedef struct //栈结构体的定义
{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;

void push(SqStack &S, SElemType e)//压栈
{
if (S.top - S.base >= Stacksize)
{
S.base = (SElemType *)realloc(S.base,(S.stacksize+StackIncrement)*sizeof(SElemType));
if (!S.base)
{
exit(0);
}
S.top = S.base+Stacksize;
S.stacksize += StackIncrement;
}
*S.top++ = e;
}

void pop(SqStack &S, SElemType &e)//出栈
{
if (S.base == S.top)
{
exit(0);
}
e = *--S.top;
}

void InitStack(SqStack &S)//初始化栈
{
S.base = (SElemType *)malloc(sizeof(SElemType) * Stacksize);
if (!S.base)
{
exit(0);
}
S.top = S.base;
S.stacksize = Stacksize;
}
youjianwanlei 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Sco_field 的回复:]
C/C++ code
PUSH?是指汇编里的push吗?
直接用是什么意思?
不是指嵌入汇编代码?
[/Quote]
恩,
就是在TC下 直接写PUSH();
看来是没用的???!
Sco_field 2009-03-16
  • 打赏
  • 举报
回复

PUSH?是指汇编里的push吗?
直接用是什么意思?
不是指嵌入汇编代码?
youjianwanlei 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 arong1234 的回复:]
你最好避免使用,因为你无法保证正确性
你要用还不如直接用嵌入汇编呢
[/Quote]
怎么用?
是不是要加个什么头文件?
不是自己弄个函数
我的意思就是直接用
能明白我的意思吗?
arong1234 2009-03-16
  • 打赏
  • 举报
回复
你最好避免使用,因为你无法保证正确性
你要用还不如直接用嵌入汇编呢

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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