调制c ++代码

时间:2015-06-21 06:16:22

标签: c++ parameters module

我听说最佳做法是“调整”代码,以最大限度地减少代码依赖代码其他部分的数量。

如果我有float

float X = 1000;

使用X的函数:

void A()
{
    //use X
}

更好的做法是让函数直接使用X,或使用这样的传递参数:

void A(float param)
{
    //use param
}

并称之为:

A(X);

或简化使用第一个功能?

3 个答案:

答案 0 :(得分:3)

这个例子很糟糕:

// Define global variable ...
float X = 1000;
// ... and expect A() to work with it ...
A();
// ... because there is a hidden dependency.

这个例子很好:

// Define local variable ...
float X = 1000;
// ... and let A() work with it.
A(X);
// Everything is explicit and clean here.

请注意,好方法允许您以这种方式简化代码:

// Just do it.
A(1000);

答案 1 :(得分:1)

决定某事物应该是参数还是全局的最佳经验法则是简单的#34;你会用不同的论点来称呼它吗?#34;?也就是说,A X需要不同的值吗?

如果X是一个常数,就像一个字节中的位数或引力常数一样,那就使它成为常数,不要浪费时间将其作为参数传递。另一方面,如果电话可能因电话而异,请将其作为参数。

另外,不要不必要地进行模块化。如果你只在一个地方使用A,并且A特别长,那么你可能最好把它放在网上 - 它会减少有人拥有的代码数量阅读以理解您的代码。

答案 2 :(得分:0)

如果您仅针对函数X全局声明A(),那么您就不应该这样做。 而是在main中本地声明它并通过参数传递给函数。

此外,如果您仅为该功能声明X并想要修改它的值,则应通过引用传递它。

void main ()
{
    float X = 1000;
    A(&X)
}

void A(float *ptr)
{
    // Do operations with *ptr which has the value of X in main()
}