Нет, не будет.Логические операторы в C замыкают накоротко, поэтому, если левая часть ||
истинна, правая часть не будет оцениваться (и, следовательно, функция не будет выполняться, и никакие побочные эффекты, которые она может иметь, не будут действовать).Аналогично с &&
, если левая сторона оценивает false, правая сторона не будет оценена.
Это определено в стандарте C и происходит в любом совместимом со стандартами компиляторе независимо от параметров компиляции.
Хотя это иногда приводит к повышению производительности, компиляторы выбирают не оптимизацию, а укоренившуюся семантику C.