Turbo C ++: почему printf печатает ожидаемые значения, когда в него не передаются переменные?

В тесте с несколькими вариантами ответов был задан вопрос: каковы будут результаты следующей программы:

#include 

int main(void)
{
    int a = 10, b = 5, c = 2;

    printf("%d %d %d\n");

    return 0;
}

и варианты были различными перестановками 10, 5 и 2. По некоторым причинам, это работает в Turbo C ++, который мы используем в колледже. Тем не менее, это неt при компиляции с помощью gcc (который выдает предупреждение при включенном -Wall) или clang (с включенным -Wformat и по умолчанию выдает предупреждение) или в Visual C ++. Как и ожидалось, на выходе получаются значения мусора. Я предполагаю, что это как-то связано с тем фактом, что Turbo C ++ является 16-битным и работает на 32-битной Windows XP, или что TCC ужасен, когда дело касается стандартов.

Ответы на вопрос(5)

Ваш ответ на вопрос