2015-09-07 3 views
1

Я видел if(true) использовал кучу раз.В чем смысл if (true)? C++

int a = 10; 
if(true){ 
    int b = 20; 
} 
int c = 15; 

Я не понимаю, что точка сдачи, если (правда) есть. Всегда ли она оценивается как истина, то есть она всегда выполняется? Это не часть функции. Это просто. Это связано с распределением памяти?

+2

Возможно, это попытка создать ограниченный объем. Хотя для этого можно использовать только брекеты. – Niall

+2

В любой половине достойного выпуска компиляции это будет оптимизировано. Возможно, это была дурная привычка оставлять старый код, который имел какую-то реальную логику, но заменен не логикой. – Amit

+2

Ограничитель видимости - хорошая возможность, но также может быть быстрой отладки вкл/выкл. Без контекста кто знает? – user4581301

ответ

2

Это эквивалентно:

{ 
    int b = 20; 
} 

может быть кто-то с помощью if (false) затем перешел на if (true). if(false) действительно имеет смысл, потому что вы удаляете какой-то код - он не должен попасть в скомпилированный exe, но он компилируется компилятором и проверяется на наличие каких-либо ошибок.

+2

Да, if (false) в функции начинается с ярлыков в ней, которую вы можете позже переходить на восстановление, является полезным шаблоном. –

2

Если один возился с кодом, это очень легко превратить

if (true) { 
    // block of code 
} 

в

if (false) { 
    // block of code 
} 

так это полезная конструкция, если вы часто нужно повернуть блок кода на/выкл. Он также может быть местом для будущих изменений, где логическое значение заменяется параметром (шаблоном) или глобальной константой или что-то вроде этого. (или отсрочка от прежнего изменения, которое делалось наоборот)

Смежные вопросы