【发布时间】:2021-04-01 15:22:12
【问题描述】:
我对 C 很陌生。
我已经编写了以下代码。以下所有功能几乎相同。我只是想知道有没有办法将以下函数简化为通用函数
struct tensor add(struct tensor t1, struct tensor t2){
int data[t1.size];
int i = 0;
while (i < t1.size) { data[i] = t1.data[i] + t2.data[i]; i++; }
return Tensor(t1.rank, t1.shape, data);
}
struct tensor sub(struct tensor t1, struct tensor t2){
int data[t1.size];
int i = 0;
while (i < t1.size) { data[i] = t1.data[i] - t2.data[i]; i++; }
return Tensor(t1.rank, t1.shape, data);
}
struct tensor mul(struct tensor t1, struct tensor t2){
int data[t1.size];
int i = 0;
while (i < t1.size) { data[i] = t1.data[i] * t2.data[i]; i++; }
return Tensor(t1.rank, t1.shape, data);
}
还有更多功能。每个运算符一个,格式如下
struct tensor genericfunc(struct tensor t1, struct tensor t2){
int data[t1.size];
int i = 0;
while (i < t1.size) { data[i] = t1.data[i] ?? t2.data[i]; i++; }
return Tensor(t1.rank, t1.shape, data);
}
【问题讨论】:
-
可以,但这取决于您如何灵活更改该功能。例如,泛型函数是否可以接收第三个参数作为指示符?
-
是的,有可能通过指标
标签: c optimization code-formatting generalization