Svoboda | Graniru | BBC Russia | Golosameriki | Facebook

Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

crt0 (также известный как c0) — набор стартовых подпрограмм, принудительно линкованных в программу, написанной на Си. Crt0 выполняет инициализирующую работу, необходимую перед вызовом основной функции.

Типы и использование

Crt0 обычно принимает форму объектного файла с именем crt0.o, часто написанного на языке ассемблера, который автоматически включается линковщиком в каждый скомпонованный им исполняемый файл[1].

crt0 содержит основные части библиотеки среды выполнения. Работа, которую он выполняет, зависит от компилятора, операционной системы и реализации стандартной библиотеки.[1] Кроме работы по инициализации, которая требуется средой и набором инструментов, crt0 может выполнять и дополнительные операции, определенные программистом, такие как исполнение глобальных конструкторов C++ и функций языка Си, имеющие аттрибут ((constructor)).

«crt» означает «время выполнения Си», а ноль подразумевает «самое начало». Однако, когда программы компилируются с помощью GCC, он также используется в отличных от Си языках. Альтернативные версии crt0 доступны для специальных сценариев использования; например, чтобы включить профилирование с помощью gprof, программы должны быть скомпилированы с gcrt0.[2]

Пример crt0.s

Этот пример предназначен только для Linux x86-64 с синтаксисом AT&T без актуальной среды выполнения Си.

.text
.globl _start

_start:                      # _start is the entry point known to the linker
  xor %ebp, %ebp             # effectively RBP := 0, mark the end of stack frames
  mov (%rsp), %edi           # get argc from the stack (implicitly zero-extended to 64-bit)
  lea 8(%rsp), %rsi          # take the address of argv from the stack
  lea 16(%rsp,%rdi,8), %rdx  # take the address of envp from the stack
  xor %eax, %eax             # per ABI and compatibility with icc
  call main                  # %edi, %rsi, %rdx are the three args (of which first two are C standard) to main

  mov %eax, %edi             # transfer the return of main to the first argument of _exit
  xor %eax, %eax             # per ABI and compatibility with icc
  call _exit                 # terminate the program

См. также

Примечания

  1. 1 2 The C Runtime Initialization, crt0.o. embecosm.com. Дата обращения: 30 декабря 2013. Архивировано 30 декабря 2013 года.
  2. Compiling a Program for Profiling: GNU gprof. sourceware.org. Дата обращения: 30 декабря 2013. Архивировано 31 декабря 2013 года.
Эта страница в последний раз была отредактирована 29 мая 2023 в 03:32.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).