Часть языка стандарта , которая определяет библиотеку обработки строк, гласит, что, если не указано иное для конкретной функции, любые аргументы указателя должны иметь допустимые значения.
Философия разработки стандартной библиотеки C состоит в том, что программист в конечном итоге находится в лучшем положении, чтобы знать, действительно ли нужно выполнять проверку во время выполнения.В те дни, когда ваша общая системная память измерялась в килобайтах, накладные расходы на выполнение ненужной проверки во время выполнения могут быть довольно болезненными.Таким образом, стандартная библиотека C не мешает выполнять какие-либо из этих проверок;это предполагает, что программист уже сделал это, если это действительно необходимо.Если вы знаете , вы никогда не передадите неверное значение указателя в strlen
(например, передаете строковый литерал или локально размещенный массив), тогда нет необходимости загромождать результирующеедвоичный файл с ненужной проверкой на NULL.