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

Bar*_*ski 0 c++

我宣布:

int xstartoftable;
void drawframe();

int main()
{
   int xstartoftable = 80-TLENGTH;
   drawframe();

   return 0
}
void drawframe();
{
   gotoXY(xstartoftable - 1, ystartoftable - 1);
}
Run Code Online (Sandbox Code Playgroud)

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

Luc*_*ore 5

那是因为你在main中重新声明你的变量.

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

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

而是只做:

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

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

这类似于:

int main()
{
   int x = 0;
   {
      int x = 1;
   }
   printf("%d",x);
   //will print 0
}
Run Code Online (Sandbox Code Playgroud)

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