crt0 (also known as c0) is a set of execution startup routines linked into a C program which perform any initialization work required before calling the program's main function. It generally takes the form of an object file called crt0.o, often written in assembly language, which is automatically included by the linker into every executable file it builds.
crt0 contains the most basic parts of the runtime library. As such, the exact work it performs depends on the program's compiler, operating system and C standard library implementation. Beside the initialization work required by the environment and toolchain, crt0 can perform additional operations defined by the programmer, such as executing global constructors in C++ and C functions carrying the GCC's ((constructor)) attribute.
"crt" stands for "C runtime" (the zero stands for "the very beginning"). However, when compiling using GCC, it is also used for languages other than C.
- "The C Runtime Initialization, crt0.o". embecosm.com. 2010. Retrieved 2013-12-30.
- "Program initialization". Creating a C library. osdev.org. 2014-02-25. Retrieved 2014-04-21.
- "Calling Global Constructors". osdev.org. 2014-04-08. Retrieved 2014-04-21.
- "Compiling a Program for Profiling". GNU gprof. sourceware.org. Retrieved 2013-12-30.
|This computer programming–related article is a stub. You can help Wikipedia by expanding it.|