将 main 中的变量值更改为可用于其他函数 (c++)

Changing the value of a variable in main to be available for other functions (c++)

本文关键字:其他 用于 函数 c++ main 变量值      更新时间:2023-10-16

>我声明这一点:

int xstartoftable;
void drawframe();
int main()
{
   int xstartoftable = 80-TLENGTH;
   drawframe();
   return 0
}
void drawframe();
{
   gotoXY(xstartoftable - 1, ystartoftable - 1);
}

问题是当我调试时,xstartoftable 的值是随机的,不等于 main(( 中的值。代码超过 150 行,这只是需要的部分。

这是因为你在 main 中重新声明了你的变量。

int main()
{
   int xstartoftable = 80-TLENGTH; //extra declaration here
   drawframe();
   return 0;
}

相反,只需执行以下操作:

int main()
{
   xstartoftable = 80-TLENGTH; //leave out declaration
   drawframe();
   return 0;
}

这类似于:

int main()
{
   int x = 0;
   {
      int x = 1;
   }
   printf("%d",x);
   //will print 0
}

在某些编译器上,您甚至可能会收到错误。

>int xstartoftable = 80-TLENGTH;声明了一个不同的xstartoftable,它隐藏了全局。 G++有一个方便的-Wshadow警告来捕捉这些东西。

您希望改为xstartoftable = 80-TLENGTH;分配。