Более квалифицированный способ написания операторов if-else? [закрыто]

alloca () хорош и эффективен ... но он также сильно нарушен.

  • поведение с измененной областью (область действия вместо области блока)
  • использовать несогласованный с указателем malloc (alloca () - ted не должен быть освобожден, отныне вы должны отслеживать, куда указатели поступают из бесплатного () только те, которые вы получили с помощью malloc ())
  • плохое поведение, когда вы также используйте inlining (область действия иногда переходит к функции вызывающего абонента, зависящей от того, настроен ли звонок или нет).
  • проверка границы стека
  • неопределенное поведение в случае сбоя (не возвращает NULL как malloc ... и что означает отказ, поскольку он не проверяет границы стека в любом случае ... )
  • не ansi standard

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

Если вам это действительно нужно, вы можете использовать VLA (нет vla на C ++, слишком плохо). Они намного лучше, чем alloca () относительно поведения и согласованности области. Как я вижу, VLA - это своего рода alloca (), сделанный правильно.

Конечно, локальная структура или массив с использованием мажоранты требуемого пространства все же лучше, и если у вас нет такого распределения кучи мажоранты с использованием простого malloc (), вероятно, разумно. Я не вижу здравого смысла, когда вам действительно нужно либо alloca (), либо VLA.

1
задан Personified 16 January 2019 в 01:56
поделиться

1 ответ

Я бы сначала выбрал все элементы в DOM, т. Е.

var myIdIWant = document.getElementById('someid')

, вместо того, чтобы набирать то, что выше, я мог бы сказать что-то вроде myIdIwant.style.display = 'none', и кажется, что у вас есть много висящих других там можно использовать операторы if / else вместо

if(foo) {
//do something
}
elseif(bar) { 
//do something 
}
else{}

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

[112 ]
0
ответ дан Omar Brown 16 January 2019 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: