A função main () em C e C ++ é uma função interna ou definida pelo usuário?

Em c e c ++, main () é o coração do programa, o que significa que o programa começa a executar a partir de main ().

  • É um ponto de entrada de todo programa C / C ++.
  • Todas as funções predefinidas e definidas pelo usuário são chamadas direta ou indiretamente pela principal.

Então main é construído em função.

Mas podemos defini-lo pelo usuário usando macro.

usaremos a diretiva pré-processador (um programa que processa o código-fonte antes da compilação) #define com argumentos para dar a impressão de que o programa é executado sem main. Mas, na realidade, ele roda com uma função principal oculta.

Usando uma macro que define o principal

#include

#define fun main

int fun(void)

{

printf("abc");

return 0;

}

Usando o operador de colar token
A solução acima possui a palavra ‘main’. Se não temos permissão para escrever main, podemos usar o operador de colar token

#include

#define fun m##a##i##n

int fun()

{

printf("abc");

return 0;

}

Usando macro argumentada

#include

#define begin(m,a,i,n) m##a##i##n

#define start begin(m,a,i,n)

void start() {

printf("abc");

}

A maneira correta de entender isso é a seguinte:

Em C, as funções que você escreve (definidas pelo usuário) não são executadas automaticamente, elas precisam ser chamadas por um chamador. O usuário os chama de main() ou de outras funções definidas pelo usuário.

Há uma função especial chamada main() que é definida por você (o usuário), mas não chamada por você (o usuário). É chamado pelo sistema operacional na execução do seu programa.

Portanto, o nome ‘ main ‘ é incorporado, mas a definição não é.

Vamos começar com uma diferença comum entre a função interna e a definida pelo usuário.

  • Uma função interna tem sua função já implementada e o código de objeto da implementação é fornecido pelas bibliotecas.
  • No caso de implementação de função definida pelo usuário, é fornecida pelo usuário. A lógica da codificação depende do usuário.

No caso de C / C ++, o programa inicia a execução da função principal, sendo obrigatório definir a função principal.

No entanto, a lógica a ser executada no início do programa é fornecida pelo usuário, o que a torna uma função definida pelo usuário.