Привет, ребята.

У меня возник вопрос, пытался поискать в интернете безуспешно. Посмотрите следующее уведомление:

Ядро Linux превышает 15 миллионов строк кода

Теперь, сколько символов в одной строке? Я открыл свой текстовый редактор, чтобы понять это и получил эту сумасшедшую вещь:

Скриншот

Спасибо

2 ответа2

3

На ваш вопрос не может быть разумного ответа. Вы вроде задаете неправильный вопрос здесь.

Не существует постоянного числа символов в строке. Строка, в общем, техническом смысле, может быть произвольно длинной последовательностью символов, заканчивающейся символом новой строки \n . Если этот символ просто не появляется, строка может стать очень длинной. Это действительно зависит от содержания того, что вы пишете. Это не так, как в текстовом процессоре (или на этом веб-сайте), где разрывы строк происходят автоматически, а возможная длина строки зависит от размера шрифта или ориентации страницы.

В исходном коде это также связано с трудностью определения, что именно является строкой кода. Учитываются ли комментарии исходного кода, которые на самом деле не являются кодом, то есть инструкциями по обработке? Учитываются ли пустые строки (строки только с пробелами)? Для исходного кода есть метрика, которая называется Source Lines of Code или SLOC. Эта статья имеет больше информации об этом.

В связанной статье H заявляет:

Стоит отметить, что эти цифры включают комментарии, пустые строки, документацию, сценарии и инструменты пользовательского пространства, включенные в ядро (find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l).

Таким образом, это действительно количество символов новой строки, включая комментарии, пустые строки и т.д. Во всех файлах, кроме файлов метаданных контроля ревизий (git). Он измеряет физические строки (считая символы \n ) и действительно зависит от таких вещей, как форматирование исходного кода.

1

Что касается ядра Linux, на самом деле применяется жесткое ограничение в 80 символов на строку.

Тем не менее, вы можете определить среднюю длину строки, взяв размеры файлов и разделив их на приблизительное количество строк (или используя любой символ строки / символа, например wc).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .