Cambiar el punto de entrada “principal”

¿Cómo puedo cambiar el punto de entrada “principal” de mi progtwig?

#include int main(int argc, char *argv[]) { printf("%s\n","Hello world!"); return 0; } 

 gcc -o entry_test -Wl,-eother entry_test.c 

 #include int other(void){//can't use argc, argv printf("Bye-Bye world!\n"); return 0; } int main(int argc, char *argv[]){ printf("%s\n","Hello world!"); return 0; } 

Si estás usando gcc, encontré un hilo que decía que puedes usar el parámetro de línea de comandos -e para especificar un punto de entrada diferente; como BLUEPIXY declaró ver también:

Evitar el principal (punto de entrada) en un progtwig en C

-Ver el siguiente enlace para más detalles sobre la opción “-e”:

http://gcc.gnu.org/ml/gcc/2001-06/msg01959.html

Otra forma es cambiar la función de inicio en el archivo de “inicio” del vinculador. El vinculador puede incluir un código de inicio principal en un archivo como start.o y es este fragmento de código el que se ejecuta para configurar el entorno C luego llame a main (como en todas las cadenas de herramientas integradas). No hay nada que le impida reemplazar eso con algo que llame a otra función.

Aquí hay una excelente explicación para los archivos de inicio:

¿Qué es el gestor de arranque y el código de inicio en los sistemas integrados?

Voté esta pregunta porque podría ser útil para algunos desarrolladores de c incrustados.