我在使用生成器的python中有以下函数,我不知道如何转换为C风格的代码:
def terms():
t = 1
yield t
r = 1/z
k = 1
while k <= n:
t = t*(n+1-k)/k*r
if not (k > 2 and k & 1):
yield t*my_number(k)
k += 1
答案 0 :(得分:1)
使用结构来保持函数的状态(即局部变量)。 然后编写两个函数(选择更好的名称),您还必须重写术语的调用者以保持结构实例可用。
struct terms_locals{int k; ...}
struct terms_locals terms_init() {
return initialized_struct;}
double terms_next(struct terms_locals *loc){
compute yield term;
update *loc;
return yield term;}