Как приведенная ниже программа выводит `C89` при компиляции в режиме C89 и` C99` при компиляции в режиме C99?

Я нашел эту программу на C из Интернета:

#include <stdio.h>

int main(){

    printf("C%d\n",(int)(90-(-4.5//**/
    -4.5)));

    return 0;
}

Что интересно в этой программе, так это то, что когда она компилируется и запускается в режиме C89, она печатаетC89 и когда он скомпилирован и запущен в режиме C99, он печатаетC99, Но я не могу понять, как работает эта программа.

Можете ли вы объяснить, как второй аргументprintf работает в вышеуказанной программе?

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

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