Я открыл свое скомпилированное приложение Hello World Obj-C в текстовом редакторе и, к своему удивлению, обнаружил около 8 килобайт 00 00 00 00 00 00 00 00 ....
Почему они здесь? Есть ли способ очистить эти нули (которые, я сомневаюсь, имеют большую функцию тоже)?
Очевидно, это не так важно в файле это, поскольку для начала это всего 16 КБ, но я все равно хотел бы знать.





Поддерживает ли Objective-C добавочное связывание? Это могло бы объяснить, почему было много места для заполнения.
Некоторым компиляторам или компоновщикам требуется круглое число для размера файла. Вы можете видеть, что при добавлении кода размер файла не увеличивается. Думаю, вы видите нули.
Скорее всего, это заполнение между кодом, данными, перемещением или другими разделами исполняемого формата, которые вы используете.
Линкеры любят размещать такие разделы на границе 4k или 8k. Это сокращает время загрузки за счет небольшой потери памяти.
Для простого приветственного мира это важно, но для большого приложения дополнительная память, используемая для заполнения, ничтожна.
Может это статическая переменная? Я знаю, что во многих языках типа C начальное значение переменной, объявленной статической, встроено в код, выдаваемый компилятором. Во время выполнения это начальное значение отображается в память процесса. Возможно, вы (или какой-то код, который вы включаете или связываете) определяете массив размером 8 КБ с нулевой инициализацией.