Sabemos que esse main()
é o ponto de entrada de um programa em C. Mas o que acontece se definirmos main
como uma macro, assim?
#define main something_else
- O programa será compilado e executado corretamente?
- Como diferentes compiladores lidam com essa situação?
- Há casos em que redefinir
main
como uma macro pode ser útil ou problemático?
Se não houvesse mágica no vinculador, seu programa não conseguiria vincular devido a uma
main
função ausente.Por exemplo, se este fosse seu código completo:
A saída do pré-processador seria esta:
E você obteria um erro do vinculador:
Talvez você precise especificar sua pergunta mais detalhadamente. Você pode fazer isso:
ou isto:
ou isto:
A questão não é se
main
pode ser definida como uma macro em si, mas se o resultado do seu programa após o pré-processamento define uma função nomeadamain
(e que está declarada corretamente).