想知道在性能、声明等方面有没有区别
我有一个名为 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/