Помните, что C и C ++ переводятся в их ассемблерные эквиваленты.В большинстве случаев это может происходить с помощью некоторой формы сравнения (например, cmp
) и некоторой формы инструкции jmp
.
Таким образом, любой код, сгенерированный из (C)
, все равно будеттак же.Вложенность if
не имеет отношения к выходу.Если результирующий код должен генерировать add eax, 1
независимо от того, сколько предшествующих ему значений if, это все равно будет одним и тем же.
Единственное ухудшение производительности будет заключаться в количестве используемых вами операторов if
иили нет, итоговая сборка (jxx
) стоит дорого в вашей системе.Однако я сомневаюсь, что повторное вложенное использование if может стать узким местом для производительности вашего приложения.Обычно это время, необходимое для обработки данных, или время, необходимое для получения данных.