Видео: YouTube В прошлой публикации мы совсем немного затронули тему функций. В этот раз строго обязательно ее развить, потому как никакой из современных модных языков программирования не даст вам стать профессиональным разработчиком и при этом не вникать в самую суть. В этот самый момент мы подошли к важному перекрестку, где смыкаются понятия перехода при выполнении программы и стека. А это не только место хранения адреса возврата из функции, но и дисциплина обслуживания данных. Без понимания...
Для начала следует сказать, что создать функцию, которая принимала бы как параметр тип данных в си невозможно. Однако можно создать макрос, который работал бы похожим образом. Изначально передо мной стояла задача вывести диапазоны типов данных (вообще для этого есть специальная библиотека). Но мне было интересно реализовать это самостоятельно. Конечно, можно было бы просто прописать это вручную, но я решил посмотреть, получится ли сократить этот код (не получилось). Итак, для начала создадим структуру с одним полем, что положить туда размер типа данных: struct type_property { short size; };...