![](/img/trans.png)
[英]Can I use two arrays of pointers to struct, pointing to the same struct?
[英]To use struct or not for same primitives
我想知道何时需要在c中使用struct吗?
更准确地说-如果我具有以下原始数据类型-最佳解决方案是什么
1)仅在实际函数中声明并初始化这些原始数据类型
2)在结构中声明这些变量,然后在实际函数中对其进行初始化。
我正在编写一个程序,需要为累积分布函数(CDF)计算某些值,而做到这一点的一种方法是使多项式近似。 为此需要以下值:
k = 1 / (1 + yx)
y = 0.33267
a1 = 0.4361836
a2 = -0.1201676
a3 = 0.9372980
我已经声明并初始化了这些值,如下所示:
double k = 0;
double y = 0.2316419;
double a1 = 0.319381530;
double a2 = -0.356563782;
double a3 = 1.781477937;
我的问题听起来有点愚蠢-就是我是否应该将这些值放入结构中?
在头文件中:
struct cdf {
double k;
double y;
double a1;
double a2;
double a3;
};
typedef struct cdf Cdf;
然后我可以通过获取这些数据类型
cdf.k
例如
所以-如果我将属于结构的变量捆绑在一起,这是否会使我的程序更具可读性,还是完全没有必要? 所有的原语都是double类型的,那么为什么要把它们放在一个struct中呢?
在以下情况下,结构将是有利的:
...在多个地方使用相同的参数集。 在这种情况下,将它们定义为struct
节省键入。
...参数集需要从一个地方传递到另一个地方。 在那种情况下,该struct
将这些值整齐地分组在一起,并且很清楚所有值都属于一起并形成一个连贯的数据块。
如果只在一个地方使用这些值,我个人就不会打扰创建struct
,尽管这样做不会有任何伤害(不会使您的代码变慢或变慢)。
想要将一堆变量传递给函数或从函数中返回它们时,结构使您的工作变得简单得多。 此外,如果要声明多个变量集,则拥有一个结构会更容易。
如果您的程序由20行main()组成,则别无其他。 如果您的程序由20000行组成,那确实很重要。
如果它们不相关,那么拥有一个结构可能会令人困惑,但是您应该使它们全部为static const double
或者对您的结构执行相同的操作。 我不会在这里使用结构。
如果您需要将相同的几个值一起传递给不同的函数,则可以使用结构
如果要在不同的结构中使用相同的几个值,则结构很有用
如果您需要相同的几个值作为具有相同维的数组,那么拥有一个结构数组而不是许多单独的数组会更有用。 由于局部性,这也可能会提高性能,所有内容都在内存中并且会导致较少的缓存负载
如果要在文件中写入和读取相同的几个值,则结构很有用
如果它使代码更易于阅读,则结构很有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.