C++ __FILE__ macro

C File Macro



As macros são algum pedaço de código em algum script com algum nome específico. Quando qualquer uma das macros é executada, o código por trás delas é executado para executar uma determinada tarefa. Assim, o __FILE__ é uma macro usada dentro da linguagem C++ para obter o caminho para um arquivo específico. Portanto, hoje neste guia, discutiremos o funcionamento de uma macro C++ __FILE__.

Exemplo 01:

Vamos pegar o primeiro exemplo da macro __FILE__ em C++ iniciando o aplicativo do console do terminal. Você pode estar usando o atalho “Ctrl+Alt+T” para fazer isso. Outra maneira de abrir o shell é usar a área de atividade do menu, caso você tenha esquecido a tecla de atalho. Depois que o console do terminal for iniciado em sua tela, tente criar um novo arquivo c++ para codificar nele. Um arquivo pode ser criado com uma simples consulta de “toque”, conforme mostrado na imagem anexada abaixo. O nome de um arquivo recém-criado deve ser fornecido com a palavra-chave “touch”.







Deve haver algum editor instalado em seu sistema Linux Ubuntu 20.04 para usá-lo para codificar e abrir os arquivos recém-criados. Os editores mais recomendados amplamente conhecidos entre os usuários do Linux são o editor GNU Nano e Vim. Fora isso, o editor de texto também pode ser utilizado caso os dois editores mencionados anteriormente não estejam funcionando. Portanto, já instalamos o editor GNU Nano. Assim, iremos usá-lo para abrir e editar o arquivo para fazer o código. Use a palavra-chave “nano” junto com o nome do arquivo para fazer o editor funcionar.





Agora, o recém-criado arquivo C++ macro.cc está pronto para codificação no editor. Vamos começar a implementar o código C++ enquanto implementamos este artigo para ver o funcionamento da macro __FILE__. Iniciamos nosso código C++ adicionando o cabeçalho de entrada-saída padrão no topo dele. A palavra-chave “incluir” foi usada com o sinal de hash para fazer isso. Sem esse cabeçalho, a entrada e a saída do código C++ não funcionarão no console durante a compilação e execução.





O método main() é o pilar básico do nosso código, pois a execução começa e termina nele. Dentro do método main(), o trabalho real será feito. Temos usado um código de linha única em nosso método main() para descrever a funcionalidade da macro __FILE__. Portanto, a instrução printf foi usada aqui, usando os dois valores como argumentos, ou seja, string usando o nome do arquivo e a função da macro.

A macro __FILE__ é usada aqui para obter o caminho do arquivo atual ou seu nome. Enquanto o “%S” é usado para imprimir o caminho atual de um arquivo ou seu nome dentro de uma string. Você deve salvar seu código antes da execução com a ajuda de um atalho “Ctrl+S”. Agora que o código foi salvo, tente voltar ao terminal shell usando o atalho “Ctrl+X”.



Como terminamos com o código C++ para a macro __FILE__, vamos começar a compilação do código C++. Para a compilação, já instalamos o compilador g++ para compilar o código C++. Assim, o compilador g++ foi utilizado no terminal para compilar o arquivo “macro.cc”. Na compilação, não retorna nada, o que indica que o código C++ dentro do arquivo macro.cc está semanticamente correto. Após a compilação, chega a vez da execução de um código. Para executar o arquivo de código, tendemos a usar a consulta simples “./.aout”. Ao executar o arquivo macro.cc, obtemos o nome de um arquivo como retorno. É assim que a macro C++ __FILE__ funciona.

Exemplo 02:

Vamos dar outro exemplo para analisar a fundo a funcionalidade da macro C++ __FILE__ no sistema Ubuntu 20.04. Como vimos como a macro C++ __FILE__ funciona quando foi usada para buscar o caminho de arquivo de um arquivo no qual ela foi mencionada.

Agora, usaremos a macro C++ __FILE__ para obter o caminho do arquivo ou o nome de um arquivo diferente do arquivo no qual estamos trabalhando no momento. Então, abrimos o mesmo arquivo macro.cc no editor GNU Nano para atualizar o código. Adicionamos o cabeçalho de entrada-saída padrão com a palavra-chave include e inicializamos uma função main() com o tipo de retorno inteiro.

Dentro do método main(), a primeira instrução print é a mesma que a antiga para obter o caminho do arquivo atual no qual estamos trabalhando no momento. Depois disso, usamos a palavra-chave #line com outro nome de arquivo, ou seja, “new.txt” na próxima linha consecutiva. Isso é para especificar o arquivo diferente do arquivo atual para o qual obteremos seu nome ou um caminho. A próxima instrução printf foi utilizada para imprimir o caminho de um arquivo “new.txt” com a ajuda de uma macro C++ __FILE__. Salve seu código recém-atualizado para evitar qualquer inconveniente na hora da compilação. Use “Ctrl+S” para fazer isso.

Após salvar o arquivo atualizado, saia dele através do “Ctrl+X” do seu teclado. Agora, estamos de volta à tela do shell.

Vamos compilar o arquivo atualizado. Use o compilador g++ para fazer isso com o nome de um arquivo macro.cc. Após a compilação bem-sucedida, execute o código com o comando “./a.out” no console. A saída mostra o caminho para um arquivo atual primeiro, então o caminho para o outro arquivo, “new.txt” foi exibido na tela do shell. Veja como é fácil usar a macro __FILE__ para exibir o caminho do arquivo no shell.

Exemplo 03:

Vamos dar uma olhada na macro __LINE__ junto com a macro __FILE__ em C++. A macro __LINE__ exibirá o número da linha do arquivo no qual a macro foi usada. Portanto, abra o mesmo arquivo e atualize ambas as instruções printf. Antes da macro C++ __LINE__, adicionamos a macro C++ __LINE__. Esta __LINE__macro está obtendo o número da linha de um arquivo atual onde o __FILE__ vem primeiro. Enquanto a próxima macro __LINE__ obterá o número da primeira linha do outro arquivo porque já mencionamos o número da linha com o nome do arquivo no código.

Depois de salvar e sair do arquivo, voltamos ao terminal shell. Estamos utilizando o mesmo comando g++ para compilar o código do arquivo C++ macro.cc. A compilação bem-sucedida leva ao comando de execução. Agora o comando “./a.out” é usado aqui para fazer isso. A execução nos diz que o primeiro arquivo, ou seja, o arquivo atual na linha 3, enquanto a macro __FILE__ está na primeira linha do outro arquivo mencionado no código.

Conclusão:

Este artigo contém a definição de macros e discute o uso da macro C++ __FILE__ no sistema Ubuntu 20.04. A macro C++ __LINE__ também foi discutida em alguns exemplos para ilustrar mais o funcionamento da macro C++ __FILE__. Resumindo, temos grandes esperanças de que este artigo o ajude com o C++ __FILE__macro no seu melhor.