递归火山软件开发平台

标题: 这种联合中成员是数组的应该如何封装 [打印本页]

作者: 沉默流星    时间: 7 天前
标题: 这种联合中成员是数组的应该如何封装
代码如下:
  1. union ads_u_val {
  2.     ads_real rreal;
  3.     ads_real rpoint[3];
  4.     short rint;
  5.     ACHAR *rstring;
复制代码

火山这样封装不管用
(, 下载次数: 8)

(, 下载次数: 7)


作者: 沉默流星    时间: 7 天前
这样封装对嘛
(, 下载次数: 7)

作者: Xelloss0618    时间: 7 天前
就第一种
作者: 沉默流星    时间: 7 天前
Xelloss0618 发表于 2025-4-16 10:28
就第一种

使用第一种的话,这个rb.resval.rpoint[X]又该如何访问呢
作者: Xelloss0618    时间: 7 天前
沉默流星 发表于 2025-4-16 11:03
使用第一种的话,这个rb.resval.rpoint[X]又该如何访问呢

就按这个写法访问,火山支持的
作者: 沉默流星    时间: 7 天前
Xelloss0618 发表于 2025-4-16 11:14
就按这个写法访问,火山支持的

好像访问不到
(, 下载次数: 5)

(, 下载次数: 4)

(, 下载次数: 4)

作者: Xelloss0618    时间: 7 天前
沉默流星 发表于 2025-4-16 11:50
好像访问不到

你加个.干嘛呢,又不是方法……
结果.分辨率值.三维点数组[1]
作者: shuimiao    时间: 7 天前
Xelloss0618 发表于 2025-4-16 10:28
就第一种

x大,输出名和别名有啥区别,看起来好像都是输出指定名称到代码替换
作者: Xelloss0618    时间: 7 天前
shuimiao 发表于 2025-4-16 12:13
x大,输出名和别名有啥区别,看起来好像都是输出指定名称到代码替换

别名是直接引用C++代码里的类型。
输出名是火山翻译到C++代码后的名称。
作者: shuimiao    时间: 7 天前
Xelloss0618 发表于 2025-4-16 12:15
别名是直接引用C++代码里的类型。
输出名是火山翻译到C++代码后的名称。

谢谢
作者: Snail    时间: 7 天前
大佬开始封链表了?
作者: 沉默流星    时间: 7 天前
Snail 发表于 2025-4-16 17:02
大佬开始封链表了?

没有,只是视图
作者: Snail    时间: 7 天前
rpoint[X]是ads中对坐标的专门封装,你要rpoint[X]访问,得定义为ads_point
作者: 沉默流星    时间: 7 天前
Snail 发表于 2025-4-16 18:03
rpoint[X]是ads中对坐标的专门封装,你要rpoint[X]访问,得定义为ads_point

不需要,把本质是double类型。如果火山不支持式,才会考虑封装这个类型
作者: Snail    时间: 7 天前
理论上还是小数数组的重载,rpoint[X]=rpoint[0],rpoint[Y]=rpoint[1],rpoint[Z]=rpoint[2]。你把它改成火山里的小数,重载就没了,rpoint[X]就不能访问。
作者: 沉默流星    时间: 7 天前
Snail 发表于 2025-4-16 18:20
理论上还是小数数组的重载,rpoint[X]=rpoint[0],rpoint[Y]=rpoint[1],rpoint[Z]=rpoint[2]。你把它改成 ...

这个要之后验证才能知道
作者: Snail    时间: 7 天前
ads_real 事实上就是对小数类的封装而己,我测试过使用小数数组类代替ads_real[3]正常没问题




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4