gudleifr писал(а):
А, по-моему, наоборот, "сверху" - это способ победить сложность программы (ООП, язык), а подключение потребных библиотек - это "снизу".
Да без разницы, это все сиюминутная неофициальная терминология. Просто удобство программиста - это одно, а потом с этой программой работать, и люди хотят пользоваться определенными вещами. Не ООП или сборкой мусора, а нажимать кнопки и получать результаты. И их не устроит, например, если программист будет их убеждать, что плавающая точка не нужна, потому что ООП хороший, но плавающей точки нет. Это его личное удобство в процессе разработки, а плавающая точка - то, что ждет пользователь от программы.
gudleifr писал(а):
В Вашем фрагменте это не используется, т.к. тип приводится принудительно.
Так он от int приводится, а не от другого указателя.
gudleifr писал(а):
Нет. Тип возвращаемого значения не влияет на стек, в число параметров - сколько добавили, столько и убавили. В Си, в отличие, от Паскаля стек чистит вызывающая процедура, т.е. она корректно очистит стек от положенных ею же параметров, независимо от того, совпадает ли это с чаяниями функции. Ошибка будет только при считывании ф-ей недостающих параметров со стека.
Хорошая теория. Мне скриншоты приводить, что ли? Можно подумать, я не проверял варианты. Программа разваливается. Точка. Есть рабочий код, который позволяет смешивать функции разного формата? Прошу его сюда, всем будет полезно. Только не RTFM, и не "вот как-то так", я хочу видеть рабочий проверенный код. А пока что проверенный код есть у меня, и он показывает, что когда void() - оно работает, а когда void() и int() - оно вылетает. Возможно, это и можно победить, комбинируя pragma, но это ставит работоспособность кода в зависимость от инструментального окружения. А его же куда-то встраивать надо.