我从来没有用C编程,也没有用C ++编程一段时间,不管怎样,我还在学习。
我正在用C编写程序,并正在将MATLAB程序转换为此C程序。我有很多来自MATLAB的变量,它们是点的笛卡尔坐标,X Y Z.我可以使用内置于C的变量类型吗?我需要减去不同的点,并对它们进行其他操作。有什么建议吗?
谢谢, DemiSheep
好的我有另一个问题。我想确保这是一个好主意。 (但首先,对于stackoverflow,这是我应该如何通过编辑原始帖子将更多信息发布到我的帖子? - 谢谢!)
问题:
我有一个具有几个特征的对象。说这是一辆汽车,汽车有几个不同的参数。
参数:
在地图上的位置 海拔高度(海平面?) 开始的位置 结束位置
我可以使用struct或union(或两者兼而有之?)将所有这些参数都放在汽车“对象”中并更新对象中的参数,就像它是C ++或Java中的自己的类一样?
如果我想计算一下汽车从起始位置到当前位置的距离,就像笛卡尔平面一样,我可以做类似的事情:
distantTraveled = car.position - car.startPosition
谢谢, DemiSheep
答案 0 :(得分:6)
没有可以做你想做的内置类型。
您可能必须制作自己的小结构类型,如下所示。
typedef struct {
double x, y, z;
} coordinate;
如果你只限于C(而不是C ++),那么你需要建立一个小函数库来操作这些数据类型。
对于它的价值,我强烈建议您四处寻找能够为您提供此类服务的图书馆。理想情况下,专门针对您正在使用的域名。
答案 1 :(得分:1)
您可以使用struct
(typedef struct {double x,y,z;} point;
)或数组(double p[3]
)。
如果你想变得更聪明,你可以通过使用工会来使用两者:
typedef union {
struct {double x,y,z;} s;
double a[3];
} point;
但这是以更多的语法访问语法为代价的:
point p;
p.a[2] = 7;
p.s.x = 5;