¿Progtwig C sin función principal?

¿Hay alguna forma de escribir un progtwig en C sin una función principal? Si es así, ¿cómo se puede lograr eso?

C define el punto de entrada en un entorno alojado para ser main . Sin embargo, en un entorno “independiente”, el punto de entrada puede tener algún otro nombre. Esa es la única latitud que el lenguaje (al menos oficialmente) permite en ese aspecto en particular.

Sí tu puedes.

_start función _start es el punto de entrada de un progtwig en C que realiza una llamada a main() .

Yendo más allá, main() es el punto de partida de un progtwig en C desde la perspectiva del progtwigdor. Antes de llamar a main() , un proceso ejecuta una mayor parte del código para “limpiar la sala para su ejecución”.

_start es la función a la que se llama primero, que luego asigna los recursos necesarios y luego llama a main() que debe ser definida por el progtwigdor.

Puede anular _start y decirle al comstackdor que no busque main() usando la opción ” -nostartfiles “.

 #include  //for using printf() _start() { printf("Hello world!!\n"); _exit(0); } 

Para comstackr: gcc -nostartfiles code.c -o a.out

También consulte http://linuxgazette.net/issue84/hawk.html para obtener más información básica.

El siguiente linker de abuso.

char main[] = { /* Machine code for your target implementation */ };

Trabajará en algunas plataformas.

No. C se basa totalmente en el supuesto de que se inicia el progtwig en main (). De todos modos, ¿por qué quieres esto? Esto haría inconsistencias para otros progtwigdores que leen su código.

Tal vez esto podría funcionar: http://www.gohacking.com/2008/03/c-program-without-main-function.html

Una alternativa es escribir un progtwig en C y ver la salida del ensamblaje: http://users.aber.ac.uk/auj/voidmain.shtml

Puede encontrar más información sobre lo que sucede antes de llamar a main () aquí (Cómo se manejan las funciones de inicialización): http://gcc.gnu.org/onlinedocs/gccint/Initialization.html