int Pop (Stack * pstack, int * pname)
{
if(pstack->top<=0)
{
return 0
}
pstack->top--
* pname = pstack->data[pstack->top]
return 1
}
Push函数改成这样:
int Push (Stack * pstack, int num)
{
if(pstack->top>=Stack_size)
{
printf("Push Error!")
return 0
}
pstack->data[pstack->top]=num
pstack->top++
return 0
}
试试(原来那样当元素达到最大数目时pstack->top就越界了)。
关于 pop 函数,我不太确定题主说的是哪个函数,因为 C 语言的标准函数库是没有 pop 这个函数的。如果题主说的是 C++ 的 Stack 类中的 pop 函数的话,它并不是一个缩写,因为从栈中取值的操作就叫做 pop。
然后就是查询单词原型的网站,因为 C 语言好多函数库中的函数名都是按照很奇怪的方法缩写的,所以基本上没有一个专门查全称的网站。不过题主可以参考
http://www.cplusplus.com/reference/clibrary/
这个网站里面虽然没有指出具体的缩写方式,但是能很好地解释 C 语言标准函数库的所有函数的作用。通过它的介绍你应该会对函数的全称有一个大概的理解。比如说这个针对 stdio.h 头文件中所定义函数的解释:
不光是 C 语言,C++ 的标准类库的信息也可以在这个网站中找到。
这个算是数据结构的内容讲解的是一个叫做栈类型的数据结构,这个数据结构的特点就是后进先出--最后放进去的数据最先拿出来。pop函数就是拿出数据的操作,push是放入是数据的操作。
内容拓展:
pop函数呵push函数的使用:
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
void *clean(void *arg)
{
printf("cleanup: %s \n",(char *)arg)
return (void *)0
}
void * thr_fn1(void * arg)
{
printf("chread 1 start \n")
pthread_cleanup_push((void *)clean,"thraed 1 first handler")
pthread_cleanup_push((void *)clean,"thread 1 second handler")
printf("thread 1 push complete \n")
if(arg)
{
return ((void *)1)
}
pthread_cleanup_pop(0)
pthread_cleanup_pop(0)
return (void *)1
}
//输出结果: chread 1 start ->thread 1 push complte
//push和pop框起来的代码,不管正常退出还是异常退出,都将执行清除函数,但是存在特例:不包括return 退出。