关于栈的弹出函数设计是否应该有两个返回值,一个表示数据,一个表示是否栈为空

在我的书中有一个栈的设计,有人对此提出质疑,认为栈的弹出函数应该设计两个返回值,一个表示弹出的数据,

另一个表示栈是否为空。他的理由是当栈中如果压入一个空指针时,返回值是NULL时并不表示栈为空。

老实说我对栈的弹出函数设计两个返回值是不赞同的,这样会严重影响效率。欢迎大家讨论。

我的书中栈的弹出函数如下:

 /** 栈的弹出函数,弹出栈顶数据,
    弹出的数据需要调用者自行释放掉。

 @param STACK * pStack - 栈指针 
    @return void * - 成功返回栈顶数据,栈为空则返回NULL 
*/
void * Stack_Pop( STACK * pStack )
{
     void *pData;

     if ( pStack == NULL || pStack->uTop == 0 )
     {
         return NULL;
     }

     pStack->uTop -= 1;

     pData = pStack->ppBase[pStack->uTop];
 
     return pData;
}

 

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=874374


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值