在我的代码中,我有一个方法,我需要声明一个方法来计算,我可以在方法中声明变量吗?
bool CheckArrays(int arrArg1[5][9], vector <int> arrArg2)
{
int idk;
return true;
}
int main()
{
while(true)
{
CheckArrays(X, X2);
}
}
你可以看到他每次在函数CheckArrays(X,X2)
中调用函数CheckArrays
时都会声明int idk
,这样做是最好的做法吗?
它是否会通过每次声明来浪费记忆?(以更大的方法为例)。
答案 0 :(得分:2)
我可以在方法中声明变量吗?
是。不仅如此,它还是最好的方法。
我害怕的是每次它都会声明变量,我害怕浪费内存或删除数据
idk
。
我愿意打赌,这不会成为性能瓶颈。计算机可以处理更多的复杂性。
每次都宣布它并浪费记忆。
每次进行函数调用时都会初始化变量,但不会浪费内存。这是最好的方法。
答案 1 :(得分:1)
不仅好,而且推荐。变量应在尽可能小的封闭范围内声明。当输入方法时,这个将在堆栈上分配,并在方法退出时解除分配,基本上没有成本。
答案 2 :(得分:0)
它不浪费任何内存,这个变量在堆栈中并在函数结束时停止存在。但是,每次调用该函数时都会重置它。
如果您希望值保持持久,请将其设为public class Category {
private String category_id;
private String category_name;
private String category_description;
public Category() {
}
public Category(String category_id, String category_name, category_description) {
this.category_id = category_id;
this.category_name = category_name;
this.category_description = category_description;
}
public String getcategory_id() {
return category_id;
}
public String getcategory_name() {
return category_name;
}
public String getcategory_description() {
return category_description;
}
。该变量将不再在堆栈中,但只会被分配一次。
答案 3 :(得分:0)
简单地声明一个整数(并且永远不会将它用于任何东西)是完全免费的,因为如果你启用了优化(如果你关心性能,你将会这样),编译器将简单地从生成的二进制文件中删除它。
假设你的实际代码确实使用了整数,它仍然几乎是免费的;当函数执行时,它将占用四到八个额外字节的堆栈空间(取决于你的CPU架构),但这是一个不值得担心的微不足道的RAM。它不会占用任何额外的CPU周期,除非你得到或设置它的值,即使这样获得或设置一个整数的值足够接近你自己也不必担心它。