c++的调制代码

Modulating Code for c++

本文关键字:代码 调制 c++      更新时间:2023-10-16

我听说最好的做法是"调整"代码,以最大限度地减少代码对代码其他部分的依赖。

如果我有float:

float X = 1000;

以及一个使用X:的函数

void A()
{
    //use X
}

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

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

这样称呼它:

A(X);

还是简化使用第一个函数?

这个例子很糟糕:

// 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);

决定某个东西应该是参数还是全局的最佳经验法则是"你会用不同的参数调用它吗?"?也就是说,A是否需要不同的X值?

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

此外,不要进行不必要的模块化。如果你只在一个地方使用A,而A不是特别长,那么你最好把它放在内联中——这将减少人们为了理解你的代码而必须阅读的代码量。

如果您只为函数A()全局声明X,那么您不应该这样做。而是在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()
}