c - 冗余或良好实践 - 结构

标签 c

我今天的问题是关于编程的便利性和效率的平衡问题之一,更具体地说是关于结构的使用。

“结构是一个或多个变量的集合,这些变量可能属于不同类型,它们以一个名称组合在一起以便于处理。”

此摘录与以下基本示例一起可在“The C Programming Language”中找到:

struct point { 
   int x; 
   int y; 
}; 

struct rect { 
   struct point pt1; 
   struct point pt2; 
}; 

到目前为止一切顺利。

我开始编写一个计算线性方程的程序,结果是这样的:

typedef struct point { double x; double y; } point;

typedef struct linearEquation { double mx; double b; } linearEquation;

point 和 linearEquation 具有完全相同的变量,两个 double 。

所以问题是: 这些是多余的吗?一个结构是否为两者服务?还是为了可读性而保留它?考虑到函数需要特定的参数并具有特定的返回类型。

例如,我可以用类似的东西替换每一个:

typedef struct twoDs { double a; double b; } twoDs;

你会如何处理?

最佳答案

如果您曾经编写过任何严肃的代码,您应该始终保持不同的类型。它提高了可读性和可维护性,并且编译器能够告诉您错误的分配。

类型化语言的整个概念都是关于这个的——毕竟,它只是内存中的字节,所以你也可以不使用任何类型,直接对字节进行寻址。这可能行得通,但最终会导致不可读性和维护方面的噩梦。

关于c - 冗余或良好实践 - 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317346/

相关文章:

c++ - 嵌入式系统的 map 文件解释教程

c - C 中的反转字符

c++ - 加载程序如何将 DLL 映射到进程地址空间

c - C 中的指针(将地址传递给函数)

c++ - 显式设置图像压缩过滤器

c - 以二进制形式打印文件(1 和 0)

c - 如何查找 B 树的层数

c++ - 当应用于基本类型时,在分配之前检查是否相等是一种过早的悲观化形式吗?

c - 使用 C 在字节数组中实时显示 .jpeg

C、gets() 可能很危险。文件中的数据不会出现