Comment écrire un programme C sans utiliser Main ...! Lorsque j'apprends à écrire un fichier ASM par un simple fichier C [de longueur 3 lignes], j'ai ce doute. I fichier d'assemblage J'ai utilisé préambule et post ambles, à la fonction.Comment écrire un programme C sans 'main'?
Répondre
Il y a un grand article et créer le plus petit binaire elf possible here. Il a beaucoup d'informations sur ce qui est nécessaire pour avoir quelque chose de runnable par l'os.
Un autre article similaire peut être trouvé sur le [blog ksplice] (http: //blog.ksplice.com/2010/03/libc-free-world/) –
C'est une astuce logique. Ceux qui ne le savent pas peuvent apprendre cette astuce.
#include<stdio.h>
#include<conio.h>
#define decode(s,t,u,m,p,e,d) m##s##u##t
#define begin decode(a,n,i,m,a,t,e)
void begin()
{
clrscr();
printf("\nHello !!! Kaushal Patel.");
getch();
}
Explication:
La directive préprocesseur #define avec des arguments est utilisé pour donner une impression que le programme fonctionne sans main(). Mais en réalité, il fonctionne avec un caché main().
L'opérateur ‘ ## ‘ est appelé l'opérateur de collage de jetons ou de fusion de jetons. C'est comment, je peux fusionner deux ou plusieurs caractères avec elle.
#define decode(s,t,u,m,p,e,d) m##s##u##t
Le macro decode(s,t,u,m,p,e,d)
s'étoffe comme “ MSUT ” (l'opérateur de ## fusionne m, s, u t & en MSUT). La logique est quand je passe (s, t, u, m, p, e, d) comme argument il fusionne le 4ème, 1er, 3ème & le 2ème caractères.
#define begin decode(a,n,i,m,a,t,e)
Voici le pré-processeur remplace le “ macro commencer ” avec l'expansion decode (a, n, i, m, a, t, e). Selon la définition de la macro dans la ligne précédente, l'argument doit être étendu de sorte que le 4ème, le 1er, le 3ème & les caractères doivent être fusionnés. Dans l'argument (a, n, i, m, a, t, e) 4e, 1er, 3e & 2e personnages sont ‘ m ’, ’ un ’, ’ i ’ & ‘ n ’.
Ainsi, la troisième ligne “ vide commence ” est remplacé par “ void main ” par le pré-processeur avant que le programme est transmis pour le compilateur.
Source: http://ctechnotips.blogspot.in/2012/04/writing-c-c-program-without-main.html
Voici votre réponse: ->
#include <stdio.h>
extern void _exit(register int);
int _start(){
printf(“Hello World\n”);
_exit(0);
}
- 1. programme Quine sans main()
- 2. Comment écrire un programme d'écho en C?
- 3. Comment écrire un programme pendant la compilation?
- 4. Comment écrire un programme Java dans Sikuli?
- 5. Comment écrire un lexer (shell) à la main
- 6. C++ main() brain teaser
- 7. Comment appeler le main() d'un programme C à partir d'un programme C différent?
- 8. Comment écrire un simple programme C pour port USB?
- 9. comment écrire dans un fichier texte par programme C
- 10. Comment écrire un programme C++ de téléchargement MultiPart
- 11. C# - Programme sans fenêtre
- 12. Écrire dans un fichier texte, sans écraser, dans C#
- 13. Programme C# sans interface utilisateur
- 14. Exécution d'un libarary partagé sans main()
- 15. Écrire en-tête avec le programme C?
- 16. Écrire un programme Java pour lire un fichier texte sans utiliser d'instructions d'importation dans le programme
- 17. Écrire un programme comme netstat
- 18. Modèle auto fait main (sans utiliser C++ 0x)
- 19. C++ - arguments à la main
- 20. Un simple programme C sans #include <stdio.h>
- 21. Comment revenir à main() dans C?
- 22. C++: Comment écrire un const_iterator?
- 23. C++ comment écrire un constructeur?
- 24. écrire un simple programme ofx4j
- 25. Comment exécuter un programme sans JIT?
- 26. Peut-on écrire un programme iphone en C?
- 27. comment écrire un code aléatoire dans C#
- 28. Comment écrire makefile pour le programme C sous UNIX
- 29. Comment calculer efficacement un module en C à la main?
- 30. Standard de définir la fonction sans paramètre main() dans C
Jetez un oeil à: [http://stackoverflow.com/questions/4113731/is-a-main-required -pour-ac-programme] (http: // stackoverflow.com/questions/4113731/is-a-main-required-for-ac-program), rechercher des sujets similaires dans stackoverflow, il y en a beaucoup – phoxis