Warnung vor dem nicht gebrauchten Wert erscheint nicht immer
Posted: 15 Feb 2025, 12:45
Ein Freund von mir stellte mir die folgende Frage, aber ich war mir nicht sicher, wie ich es beantworten sollte ... < /p>
"Beachten Sie diese Aussage: < /p> < Br />
int* p;
< /code>
... (Nehmen wir an, P wird auf etwas verweist, das Sinn macht) < /p>
*p++;
< /code>
Diese Anweisung erhöht zuerst P um eins und dann dereference. Aber die Frage ist, wenn ich dies kompiliere, bekomme ich diese Warnung: < /p>
EX-9-FREPE.cc:28:9: Warnung : Wert berechnet wird nicht verwendet [-Wunused-value] < /p>
*p++;
< /code>
< /blockquote>
... was sinnvoll ist. Ich benutze diesen Wert nicht.
(*(p++));
< /code>
Und damit geht die Warnung weg. Das ist komisch, verstehst du warum? Ich benutze den Wert immer noch nicht.*(p++);
< /code>
... Die Warnung bleibt bestehen. " Dass der Endwert von Klammern ist "(*(p ++)") und berücksichtigt, dass dies als "verwendet" betrachtet wird.>
"Beachten Sie diese Aussage: < /p> < Br />
int* p;
< /code>
... (Nehmen wir an, P wird auf etwas verweist, das Sinn macht) < /p>
*p++;
< /code>
Diese Anweisung erhöht zuerst P um eins und dann dereference. Aber die Frage ist, wenn ich dies kompiliere, bekomme ich diese Warnung: < /p>
EX-9-FREPE.cc:28:9: Warnung : Wert berechnet wird nicht verwendet [-Wunused-value] < /p>
*p++;
< /code>
< /blockquote>
... was sinnvoll ist. Ich benutze diesen Wert nicht.
(*(p++));
< /code>
Und damit geht die Warnung weg. Das ist komisch, verstehst du warum? Ich benutze den Wert immer noch nicht.*(p++);
< /code>
... Die Warnung bleibt bestehen. " Dass der Endwert von Klammern ist "(*(p ++)") und berücksichtigt, dass dies als "verwendet" betrachtet wird.>