auto в Си и Си++
Несмотря на неприязнь к Си++,
Одна из таких мелочей — ключевое слово auto. Оно есть и в Си, но значение у него совершенно другое, в современном коде, как будто бы, его использовать негде.
В Си++ оно означает автоматический вывод типа, вместо его явного указания. Клёвая штука, позволяет делать например такое (пример из кода
auto old_mode = set_tty_special_mode();
// тут какой-то код
restore_tty_mode(old_mode);Фишка тут в том, что у set_tty_special_mode и restore_tty_mode две реализации — под «Виндоуз» своя. Эти две реализации работают с разными типами, под «Виндоуз» там DWORD, в остальных случаях — структура termios.
В Си было бы
#ifdef __MINGW32__
#typedef DWORD terminal_mode
#else
#typedef struct termios terminal_mode
#endif
terminal_mode old_mode = set_tty_special_mode();
// тут какой-то код
restore_tty_mode(old_mode);А в Си++ можно просто поставить auto и обойтись без шаблонного кода. Очень хочется иметь такую клёвую примочку и в Си.
Читайте также

Комментарии 4
Не так выразительно, как в C++, конечно, но может спасти, когда нужно
Но это всё расширения же, не сам язык.
И auto там тоже есть. Вероятно, что в этом году примут обоих.