Не удается заставить спецификатор формата индекса аргумента на fprintf()
работать при компиляции кода C в Windows с gcc-7.2.0-mingw .
Взять в качестве примера следующую программу:
#include <stdio.h>
int main(void) {
int x;
x = 10;
fprintf(stdout, "%1$d == %1$d\n", x);
return 0;
}
Давайте скомпилируем и запустим его:
C:\path\to\dir>gcc -Wall -std=c89 -o main.exe main.c
C:\path\to\dir>main.exe
$d == $d
C:\path\to\dir>
Хотя я ожидал, что результат будет 10 == 10
( Попробуйте онлайн! ) .
Что происходит и как я могу правильно настроить спецификатор индекса аргумента?
Примечание: то же самое происходит, если я пытаюсь напечатать строки, числа с плавающей запятой или что-то еще.