c - 使用 typedef 结构

标签 c struct include typedef

想知道在性能、声明等方面有没有区别

我有一个名为 features.h 的文件, 它有一个结构定义:

typedef struct feat_record
{
 ...
 ...
} Feature;

我想在一个方法中的另一个文件中使用它,在另一个文件 .h 文件中我包含 features.h。 我的问题是,如果像这样在另一个文件 .h 中声明方法有区别:

void myMethod(Feature *f);

或者像这样:

void myMethod (struct feat_record *f);

谢谢

最佳答案

这只是编码风格,除了主观的个人喜好之外没有其他区别。

对于处于 C 和 C++ 边界的程序,通常鼓励使用 typedef 版本,因为它使样式与 C++ 类型一致(在 C++ 中,在声明结构对象时,struct 关键字是多余的)。

struct tag 版本主要由 Linux 阵营鼓励并由 Linux 内核代码风格指南强制执行(除了主观意见外,它没有提供太多的理由)。

没有明显的对错,选择你喜欢的风格并坚持下去。

关于c - 使用 typedef 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17420099/

相关文章:

java - JNA:如何定义具有自定义位大小字段的结构?

c++ - 为什么当我用 Rcpp 编写时我不需要包含一些我应该包含在纯 C++ 中编写的库?

c - C中有取反二进制数的函数吗?

c - 如何为 C 中的数组元素提供可读的名称?

C 宏 : Select macro using concatenation of string and number

c - 为什么将数组中的 a 转换为指针会破坏我的数据?

c - opencl 为 double 数据类型给出了错误的结果?

mongodb - 如何检索 []bson.M 类型的 map

php - 索引文件与包含文件冲突

c - 变量声明中 ':'的作用