c - 在c中实现通用堆栈

标签 c generics stack

typedef struct Stack_t* Stack;
typedef void* Element;
typedef Element (*CopyFunction)(Element);
typedef void (*FreeFunction)(Element);

你能解释一下第三行的意思吗?
谢谢

最佳答案

这是一个函数指针,您可以将函数寻址到接受Element并返回Element的函数,例如

Element ReturnElem(Element el){ } //define function

CopyFunction = ReturnElem;  //assign to function pointer

Element el = ....;
Element el2 =  CopyFunction(el); //call function using function-pointer

参见 here用于函数指针。

关于c - 在c中实现通用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16170638/

相关文章:

c - 堆栈溢出损坏 %ebp

c - 链接栈和队列

c - 如何使用 fgetc() 计算单词的唯一数量然后在 C 中打印计数

c - C语言的字数统计程序没有输出

generics - F# ICastableTo<'T> 等效吗?

.net - IEnumerable.Min() 返回带有通用对象的奇怪结果

c - OS X 上的 vwprintf/vswprintf 问题

c - scanf 读取可变数量的字符

typescript - 使用 ConstructorParameters 扩展泛型类?

assembly - fpu 以基于堆栈的方式实现其寄存器的动机是什么?