2017-08-30 50 views
-1
 float yAxis; 
     float xAxis; 
     float yWinPos = window->m_y + 16 + 28 * 2; 
     float yWinHeight = window->m_iHeight - 2 - 8 - 26; 

     yAxis = yWinPos + 16 + (i * 66) - 10; 

     RECT TabDrawArea = { window->m_x + 8 - 90 + 1, yWinPos + 16 + (i * 66) - 8, 90 - 1, 66 }; 

     RECT TextSize; 
     TextSize = Render::GetTextSize(Render::Fonts::Tab, tab->Title.c_str()); 

     RECT ClickTabArea = { 
      xAxis, 
      yAxis, 
      TextSize.right, 
      TextSize.bottom }; 

每次我尝试编译我得到:“错误C4700未初始化的局部变量‘X轴’使用” 我以为我所定义的X轴浮动,甚至试图将其设置为0。独领风骚。未初始化的局部变量“X轴”使用

+0

编译器是正确的。在代码示例中,“xAxis”未初始化。 – drescherjm

+0

“未初始化的局部变量”的哪部分是你不确定的? –

+2

“甚至尝试将其设置为0”您确定吗?因为这就是你应该做的。要么,要么给它一个重要的价值 – KABoissonneault

回答

1

您的代码中没有定义xAxis的值。 This means that ClickTabArea will have an unknown value for xAxis.

根据您的编译器选项的设置方式,您可能会或可能不会收到关于此未初始化值的警告,也取决于您的选项设置方式,您的编译器可能认为这是一个致命错误。

一旦声明它们,将变量初始化为某个零值总是安全的做法。

+0

请不要引用维基百科。您给出的定义是C++的语言不可知且明显错误的。使用不确定的值(例如'xAxis')是未定义行为,所以您不能说'ClickTabArea'具有未知值。例如,你的程序可能会崩溃而不是创建'ClickTabArea'。 – MSalters