Когда это работает, это потому, что вычисление было выполнено самим компилятором (и включено в двоичный файл, как будто вы записали его)
printf("8\n");
Когда это не работает, это потому, что *Функция 1004 * включена в математическую библиотеку, а математическая библиотека не связана с вашим двоичным файлом по умолчанию.
Чтобы получить математическую библиотеку для связи, если ваш компилятор - gcc, используйте
gcc ... -lm ...
С другими компиляторами должно быть то же самое:)
, но читать документацию