Tag: void

通用性与类型安全性? 在C中使用void *

来自OO(C#,Java,Scala),我非常重视代码重用和类型安全的原则。 上述语言中的类型参数可以完成这项工作并启用通用数据结构,这些结构既是类型安全的,也不会“浪费”代码。 当我陷入C时,我意识到我必须做出妥协,我希望它是正确的。 我的数据结构在每个节点/元素中都有一个void * ,我失去了类型安全性,或者我必须为我想要使用它们的每种类型重新编写我的结构和代码。 代码的复杂性是一个显而易见的因素:遍历数组或链表是微不足道的,并且在结构*next添加*next不是额外的努力; 在这些情况下,不尝试重用结构和代码是有意义的。 但对于更复杂的结构,答案并不那么明显。 还有模块化和可测试性:将类型及其操作与使用该结构的代码分离,使测试更容易。 反之亦然:在一个结构上测试一些代码的迭代,而它试图做其他事情变得混乱。 那么你的建议是什么? void *和重用或类型安全和重复的代码? 有没有一般原则? 当我不适合时,我是否试图强迫OO进行程序化? 编辑 :请不要推荐C ++,我的问题是关于C!

需要为函数添加前缀(void)

我最近遇到了一个相当不寻常的编码约定,其中对返回“void”的函数的调用以(void)为前缀。 例如 (void) MyFunction(); 它与函数调用有什么不同: MyFunction(); 它有没有任何优势,或者它是另一个不必要但有某种编码约定?

在c:func(void)与func()

当C函数不接受任何参数时,是否必须通过语言规则使用“void”参数声明/定义它? 当参数列表中没有任何内容时,PC-Lint似乎有问题,我想知道它是否是我不知道的语言语法中的东西。 编辑:我刚刚发现了一个重复的(后面的傻瓜?它首先出现)问题, C void参数 ,它有更多的答案和解释。