(void)foo()
означает, что мы игнорируем возвращаемое значение вызова для foo
(в данном случае - printf
).
Зависит от компилятора и установленного уровня предупреждения, игнорирование возвращаемого значения вызовет предупреждение. Иногда люди используют опцию компилятора «обрабатывать предупреждения как ошибки», а затем для того, чтобы код компилировался, возвращаемое значение вызываемых функций должно либо использоваться, либо явно игнорироваться, как в этом случае.
Это не требуется при обычной настройке, только если настройки очень строгие.