伙计们,我有一个问题与点结构声明有关,当我阅读有关几何数据类型声明的教程时,我看到了两件让我困惑的奇怪事情,我会正确地展示这些东西
typedef double point[DIMENSION];
typedef struct {
int n; /* number of points in polygon */
point p[MAXPOLY]; /* array of points in polygon */
} polygon;
typedef struct {
point p1,p2; /* endpoints of line segment */
} segment;
typedef point triangle[3]; /* triangle datatype */
让我们假设维度是某个数字,例如 (2) 和 maxpoly maxsimum 多边形中的点数,我对点的声明感到困惑 typedef double point[dimension] 是什么意思?我知道什么是 typedef,但是如果我们将 point 声明为 double 数组,那么我们如何在另一个结构中使用它
或者类作为对象?比如结构数组? 考虑一下
typedef truct
{
point p1,p2;
}segment;
它有多正确?请帮助我理解这一点
最佳答案
使用 typedef
定义的东西只是另一种类型的别名(即另一个名称)。
在你的情况下
typedef double point[DIMENSION];
这将名称 point
定义为“double 类型的大小为 DIMENSION 的数组”。
在此之后,而不是写
double my_point[DIMENSION];
你可以写
point my_point;
如果 typedef 在头文件中,则该名称可用于所有源文件和头文件,包括带有 typedef 的头文件。
关于c++ - 点结构声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8312052/