Ответ 1
Он делает то, что он говорит: он генерирует машинный код. Многие компиляторы транслируют источники C/С++ в некоторое промежуточное внутреннее представление, которое позднее используется в качестве источника для генерации фактического машинного кода. Visual С++-компилятор (как и многие другие компиляторы) делает это в пакетах: сначала он переводит кучу исходных файлов в это промежуточное представление, а затем преобразует их все в машинный код (а затем начинает работать в следующей партии). Это то, что происходит, когда вы видите сообщения "Генерирующий код".
Я не знаю, какую логику он использует, чтобы разделить исходные файлы на партии. Возможно, он работает просто по размеру: как только общий размер всех промежуточных представлений, сгенерированных до сих пор, достигает некоторого предела, он переключается на режим "генерации кода". Возможно, там есть и другая логика.
В любом случае обратите внимание, что неквалифицированный термин "код" в этом случае не относится к исходному коду, что означает, что он не имеет ничего общего с шаблонами и/или препроцессором или что-то в этом роде. Более того, ссылаясь на источники C с неквалифицированным "кодом" (в отличие от квалифицированного "исходного кода" ), это очень ниша, больше дома с отделом маркетинга, чем с фактическими программистами. На уровне программистов никто не ссылается на источники C как на "код":)