我可以在 C 中对复数结构进行代数求和吗?

Can I sum algebraically in C a complex numbers structure?

我正在尝试使用结构的 typedef 在 C 中创建复数库。

typedef struct{
     double real;
     double imag;
}complex_t;

但是我很好奇是否可以使用这个定义来进行一些计算,使用“+”和“*”符号来运算复数,而不是 创建 complex_t sum(complex_t z,complex_t w)complex_t prod(complex_t z,complex_t w) 。我想做这样的事情:

#include<complex_library.h>

complex_t z1,z_2,w_1,w_2;
z_1 = newComplex(1,2);
z_2 = newComplex(-3,-4);

w_1 = z_1 + z_2;
w_2 = z_1 * z_2;

谢谢。

我几乎羞于 post 将此作为答案,但这是一个有效的问题,每个问题都应该得到答案。

I'm curious whether if it's plausible to use this definition to do some computations using the '+' and '*'

不,这是不可能的。 C 根本不支持运算符重载。 C++ 支持这个,但 C 不支持。

旁注: 避免使用 _t 后缀。它在 POSIX 中保留。当然,它在 C 标准中没有保留,但 POSIX 相当大。

Names that end with ‘_t’ are reserved for additional type names.

https://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html

用于计算复数的 +、-、*、/ 运算 no.s,最好定义对实部和虚部进行运算的函数 separately.Since C 中不提供运算符重载,定义单独的函数似乎是唯一有帮助的option.Hope。