Subject: drop through IT из документации по языку Сприводится пример кода с комментарием { case 3: /* Не соответствует – здесь case не разрешён*/ } break; /* здесь требуется break */ case 4: a = b; /* Не соответствует – не пустой drop through */ что такое drop through? |
переводится покажите всю эту инструкцию switch в оригинале |
если Вы настаиваете... из оригинала сейчас скопировать не могу и отступы не сохраняются.. switch (x) |
всё равно не понимаю, что там не соответствует. Версия такая: в ветви case 4 отсутствует break, т.е. автоматом будет выполняться и ветвь case 5. Возможно, drop through означает захват "чужих" ветвей |
эмм... ситуация такая. в документе описываются правила написания кода на С (для некоторых систем) фрагменты кода приводятся только как иллюстрация к правилам эти фрагменты комментируются только в "отношении" фрагмента к правилу: соответствует такой код правилу или нет. я всё более склоняюсь к тому, чтобы оставить drop through в данном комментарии просто as is... |
|
link 14.08.2006 8:05 |
В этом контексте "drop through" означает переход к исполнению следующей ветви оператора switch, если опущен оператор break. В соответствии с правилами MISRA такая конструкция недопустима (не разрешена), если ветвь не пустая. Иначе говоря, разрешается перечислить подряд несколько меток case, для которых исполняется одна и та же последовательность операторов, но после любой ветви, содержащей исполняемые операторы (т.е. непустой) обязателен оператор break. Поэтому комментарий "Non-compliant: non-null drop through" можно перевести, например, так: "Не разрешается опускать break после непустого оператора". |
You need to be logged in to post in the forum |