Proč získám „neodkazované lokální proměnné“ varování? (C ++)

hlasů
1

Když jsem něco podobného

#include<iostream>
int main()
{
    int x;
    return 0;
}

Mám varování o x bytí neodkazované lokální proměnná (předpokládám becuase jsem vytvořil proměnnou, pak neměli používat ji), proč to mi dát varování i když?

Položena 21/05/2009 v 21:40
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
27

Vzhledem k tomu, obvykle lidé nevytvářejí neodkazované proměnné úmyslně. Takže pokud tam je neodkazované proměnná v programu, obvykle je to znamení, že máte chybu někde, a kompilátor vás upozorní na něj.

Odpovězeno 21/05/2009 v 21:43
zdroj uživatelem

hlasů
19

Pravděpodobně proto, že jste ztrácet paměť pro nic za nic.

Kromě toho, že kód zašpiní a těžší pochopit, nemluvě o tom, že programátoři nejsou obvykle definovat proměnné, které nepotřebují, takže je to něco jako „je to opravdu to, co jste měl na mysli?“ Varování.

Odpovězeno 21/05/2009 v 21:42
zdroj uživatelem

hlasů
15

Je to pravděpodobně zastavit něco takového:

void some_func() {
    int a, b, c, d, e;
    ...
    do_something_with(a);
    do_something_with(b);
    do_something_with(c);
    do_something_with(d);
    do_something_with(c); // after hours of reading code, e looks like c: BUG!!
}
Odpovězeno 21/05/2009 v 21:48
zdroj uživatelem

hlasů
2

Jako stranou, i tajně hodit v nepoužitých proměnných, jako je mechanismus quick'n'dirty TODO při vývoji kódu ... plamenem pryč:

bool doSomething(...)
{
    int dontForgetToReplaceStubWithSomethingReal;
    return false;
}
Odpovězeno 21/05/2009 v 22:46
zdroj uživatelem

hlasů
0

Nebo možná, že očekává, že jeho konstruktor mít vedlejší účinky, když rozsahem v a jeho destruktor jiný nežádoucí účinek, když z rozsahu, a nechtěl kompilátor být tak ‚užitečné‘ s tím, co lidé vědí nejlépe, pokud jde o záměru z druhého kódu.

Odpovězeno 11/11/2014 v 20:26
zdroj uživatelem

hlasů
0

ale také vám vědět, takže pokud si myslíte, že používáte proměnné a nejsou zjistíte. Předpoklad je, že jste vytvořili proměnnou z nějakého důvodu, možná jste zapomněli použít někde jinde.

Odpovězeno 21/05/2009 v 21:46
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more