return stack->data[--stack->top];

--stack->top;
return stack->data[stack->top];

data = stack->data[stack->top];
--stack->top;
return data;
この3パターンを試してみたら?