Может ли printf быть заменен на put автоматически в C-программе?

#include <stdio.h>

int puts(const char* str)
{
    return printf("Hiya!\n");
}

int main()
{
    printf("Hello world.\n");
    return 0;
}

Этот код выводит "Привет!" когда беги. Может кто-нибудь объяснить, почему?

Строка компиляции:gcc main.c

РЕДАКТИРОВАТЬ: теперь это чистый C, и все посторонние вещи были удалены из строки компиляции.

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

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