Выражения, которые всегда возвращают true (а компилятор не знает) - PullRequest
0 голосов
/ 16 августа 2010

Во время экспериментов я часто использую if (true) {..} или if (false) {..}, чтобы разделить фрагменты кода, с которым я играю.

Проблема в том, что в наши дни компиляторы иногда выдают предупреждение о недоступном коде. Затем мне нужно продвинуть свой код до чего-то вроде if ((10 % 2) == 0), но затем некоторые умные компиляторы также сочтут это недоступным .. (И вот начинается гонка стрелкового оружия ..)

Как мне решить эту проблему?

Ответы [ 4 ]

2 голосов
/ 16 августа 2010

Попробуйте удалить его из кода, используя флаги препроцессора:

#if false 
    .... code which won't get run ....
#endif

Некоторые IDE даже свернут такие неработающие блоки, чтобы вы не мешали им.

1 голос
/ 16 августа 2010

Это должно сделать:

if (atoi("1")) {
}

Это также может быть полезно для генерации любого вида константы.

1 голос
/ 16 августа 2010

Почему бы просто не использовать какую-то "переменную окружения" для управления такого рода вещами?Сделайте это условным условием, тогда вы не будете бороться с компилятором.

if ( environment.MODE_EXPERIMENT) {
     experimental code here
}

Лично я очень стараюсь избегать подобных вещей, у нас есть системы SCM, которые позволяют нам сохранять старые версии кода,на самом деле не нужно делать это слишком много.

0 голосов
/ 16 августа 2010

Почти каждый язык имеет версию if(false) { }, на которую компилятор / IDE не будет жаловаться. Наиболее распространенные (afaik) выглядят следующим образом:

/*
    int i = 0;
    String s = "I will never be run!";
*/

Да, комментарии. Многострочные комментарии, если быть точным. Остановка блоков кода из-за их выполнения в значительной степени является их второй основной целью (после документации). if(true), конечно, затем обрабатывается, не используя их.

Вы пытаетесь заново изобрести колесо, и я понятия не имею, почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...