-Werror = format: jak kompilator może wiedzieć
Napisałem ten celowo zły kod
printf("%d %d", 1);
kompilowanie zg++
i-Werror=format
.
Kompilator podaje to bardzo imponujące ostrzeżenie:
error: format '%d' expects a matching 'int' argument [-Werror=format]
O ile widzę, kompilator nie może stwierdzić, że kod jest nieprawidłowy, ponieważ ciąg formatu nie jest analizowany do czasu wykonania.
Moje pytanie: czy kompilator ma specjalną funkcję, która uruchamia printf i podobne funkcje libc, czy jest to funkcja, której mogę używać dla własnych funkcji? Literały ciągów?