Modifier le point d’entrée «principal»

Comment puis-je changer le point d’entrée “principal” de mon programme?

#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 vous utilisez gcc, j’ai trouvé un thread qui disait que vous pouvez utiliser le paramètre de ligne de commande -e pour spécifier un point d’entrée différent. comme le dit BLUEPIXY, voir aussi

Éviter le principal (point d’entrée) dans un programme C

-voir le lien suivant pour plus de détails sur l’option “-e”:

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

Une autre façon de changer la fonction de démarrage est dans le fichier “start up” de l’éditeur de liens. L’éditeur de liens peut inclure du code de démarrage pré-principal dans un fichier tel que start.o et c’est ce morceau de code qui s’exécute pour configurer l’environnement C puis appelez main (comme dans toutes les chaînes d’outils intégrées). Rien ne vous empêche de remplacer cela par quelque chose qui appelle une autre fonction.

Voici une excellente explication pour les fichiers de démarrage:

Qu’est-ce que le chargeur de démarrage et le code de démarrage dans les systèmes intégrés?

J’ai voté cette question car elle pourrait vraiment être utile pour certains développeurs c intégrés.