【发布时间】:2011-01-28 04:13:49
【问题描述】:
尽管可以使用 void 指针(通用指针)在 C 中编写通用代码,但我发现调试代码非常困难,因为 void 指针可以采用任何指针类型而不会收到编译器的警告。 (例如,函数 foo() 采用 void 指针,它应该是指向结构的指针,但如果传递了 char 数组,编译器不会抱怨。) 在 C 中使用 void 指针时,你们都使用了什么样的方法/策略?
【问题讨论】:
-
如果这是一个仅限 C 的问题,请删除 C++ 标记
-
嗯...“当我用锤子敲击我的手指时会很痛。用锤子敲击身体部位时你使用什么方法?”
-
如果你认为使用 void * 的 C 泛型编程可以优雅/好用,看看你必须做什么才能使用 qsort 函数...
-
使用 C++ 模板不是一个可行的选择吗?如果您担心泛型编程,您绝对应该考虑一下。
-
我在使用 C 的泛型编程领域做了一些研究。我在这篇文章中总结了我的所有发现:andreinc.net/2010/09/30/generic-data-structures-in-c 也许它会有所帮助。