C Предупреждение: заявление без эффекта - PullRequest
16 голосов
/ 24 марта 2011

При попытке скомпилировать мою программу с:

gcc -pedantic -Wall -ansi 

я получаю предупреждение: предупреждение: утверждение без эффекта

Ссылаясь на эту строку:

for(currentDirection; currentDirection <= endDirection; currentDirection++)

Кто-нибудь может мне помочь с этим?

Ответы [ 3 ]

33 голосов
/ 24 марта 2011

currentDirection; ничего не делает.

Замените вашу строку на

for(; currentDirection <= endDirection; currentDirection++)

Или, если вы просто забыли инициализировать переменную:

for(currentDirection = 0; currentDirection <= endDirection; currentDirection++)
9 голосов
/ 24 марта 2011
for(currentDirection; currentDirection <= endDirection; currentDirection++)
 // ^^^^^^^^^^^^^^^ Its saying about the above statement.

Первое утверждение должно иметь присваивание, которое в данном случае не происходит и является причиной предупреждения. Убедитесь, что currentDirection назначено правильное значение или оно может содержать мусор и может позже вызвать проблемы.

Это похоже на то, когда сказано -

 int i = 10 ;
 i ;   // This statement is valid but has no effect.
1 голос
/ 25 января 2017

По моему опыту, эта проблема возникает, когда вы делаете что-то вроде

int x = 0;
for(x = 0;x < num; x++){}

Когда вы объявляете свой цикл и уже инициализируете свою переменную, x вам не нужно объявлять еевторой раз.Так что либо сделайте:

int x = 0;
for(; x < num; x++){}

Или

int x;
for(x = 0; x < num; x++){}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...