[UNИX] HSE - ProgrammingOS - 07: More on memory

preview_player
Показать описание
Лекцию читает Георгий Курячий
Рекомендации по теме
Комментарии
Автор

37:00 - забыли модификатор signed, парный к unsigned.
48:38 "размер таблички" - Но ведь размер элемента void* (если точнее, (int (*)(int, int) ), указатель на функцию), а не int. А на 57:15 уже правильный тип данных (структуру) использовали.
49:03 - sizeof это не макросы, а операторы Си. Использовать sizeof в препроцессоре нельзя к сожалению.
53:21 "тип данных массив из 10 элементов" Этим пользуются при обработке многомерных массивов. Например, void matmul(int dst[4][4], src[4][4]); и адресация действительно будет по 4-х int'овым кускам! Правда, на самом деле передаются таки указатели. Но и это можно обойти, если засунуть массив в структуру. Тогда она вся будет пропихиваться через стек.
1:00:58 "размер int chr равен 1 байту" ЧТО?! int же 32-битный. Наверное, в коде опечатка и имелось в виду char chr;
1:02:31 "формат %lc" А что мешало взять обычные char'ы? Ведь %lc это формат для wchar_t, который у вас не подключен, да и не используется.
Между прочим, стоило бы указать на "фичу", что пробел тоже считается символом, то есть ввод "1 + 2" будет некорректным, в отличие от "1+ 2".
Самому стало интересно как от этого можно избавиться, оказалось просто добавить пробел в форматную строку: scnaf("%d %c%d", &a, &op, &b); Согласно man'у, пробел в форматной строке абсорбирует любое (в т.ч. ноль) количество ведущих пробельных символов.

COKPOWEHEU
Автор

Расскажите про структуру программы на си состоящую из кучи файлов и про стиль кода пожалуйста.

adminroot