在Python:如何讓一個函數的範圍在C中沒有嵌套函數?
#!/usr/bin/python
def f1(a, b, c, d):
return a + b + c + d
x = 5;
y = 6;
z = 7;
fm = lambda m: f1(m,x,y,z)
print fm(4)
在Matlab中:
function [retval] = f1(a, b, c, d)
retval = a + b + c + d;
x = 5;
y = 6;
z = 7;
fm = @(m) f1(m,x,y,z);
fm(4)
我知道有C中沒有嵌套函數,而無需使用GCC擴展。我如何在C中獲得與使用嵌套函數相同的功能?我如何聲明變量並將它們用作另一個函數中的常量,如示例中所示?
通過聲明它們爲全局靜態變量?或者通過傳遞他們作爲參數。 – 2014-12-04 19:43:54
我認爲全局變量很糟糕。它會工作,但它真的是最好的方法嗎? – user1801359 2014-12-04 19:50:28
如果你的程序由模塊組成,把你以前嵌套的函數放在一個模塊中,並使用共享變量的靜態聲明,將會阻止它們變成你的代碼的其他部分。 – 2014-12-04 19:54:36