Macro é uma abreviação que significa algum código de código em uma linguagem de programação. Essas macros ajudam a simplificar e reduzir o código para evitar redundância e codificação repetitiva. Para que os erros também sejam reduzidos e que ocorrem principalmente por causa da codificação repetida. A principal vantagem em relação a Macros é que ele converte o código e faz um programa de montagem mais legível.
Expansão macro
Uma macro contém um nome, um conjunto de parâmetros formais e o corpo de código. O nome da macro é usado com o conjunto de parâmetros e substituído por algum código de código que é gerado por seu corpo. Isso forma uma expansão macro. Isso permite que o programador crie e defina operações de pseudo, aquelas operações desejáveis e aquelas que não são implementadas como as instruções do processador. Macro tem uma qualidade específica na qual grava o programa automaticamente. O nome Macro é escrito como uma palavra -chave no código. Ele atua como uma chamada para essa macro específica, assim como uma chamada de função. Então esse nome é substituído por algum outro código de corpo macro, como descrevemos acima. Esta substituição da chamada pela cópia processada é a expansão da chamada macro. E é usado também em C e C ++.
Depois que uma macro é definida, não podemos redefini -la para um valor diferente sem remover a primeira definição original. Mas é possível redefinir a macro com a mesma definição de macros já definidas. A diretiva #Undef é responsável por remover a definição de uma macro. Depois que a definição é removida, agora podemos redefinir a macro com um valor diferente.
Macros em c++
Existem dois tipos:
Macros semelhantes a objetos
Macros semelhantes a objetos não assumem nenhum argumento. Estes são identificadores que são substituídos pelo valor. Estes são usados principalmente para representar valores e constantes numéricos.
#Define PL 3.17
PL é o nome da macro que será substituída pelo valor 3.17.
Macros do tipo função
Esses tipos de macros podem aceitar argumentos. Essas macros parecem uma chamada de função. Por exemplo, dê um exemplo em que Max é o nome da macro.
#Define max (a, b) ((a)<(b)?(a): (b))
As macros geralmente não geram as chamadas de função.Em C ++, as funções embutidas são preferíveis.
Macros predefinidos
Compilador Microsoft C/C ++ que possui macros predefinidos MSVC que dependem do idioma C ++, o alvo da compilação e as opções do compilador. O MSVC suporta macros pré -processadores predefinidos que são exigidos pelos padrões ANSI/ISO C99. Essas macros predefinidas não usam argumentos e não podem ser redefinidas.
Muitos macros predefinidos podem ser usados no código/programas de código C/C ++. Alguns deles são descritos aqui que são mais comumente usados.
__Data__
A data de compilação do programa no arquivo é representada por esta função macro. A data é uma string para o formato mensal e é um valor constante. Este tipo de macro é sempre definido.
__Tempo__
Ele descreve o tempo para a tradução da unidade que é pré -processada. Semelhante até a data, ele tem um formato específico em que está escrito horas: minutos: segundos, da mesma maneira que o tempo é retornado.
Este tipo de macro também é sempre definido.
__Arquivo__
Isso representa o nome do arquivo atual. Ele se expande para uma corda de personagem literal. Isso garante que o caminho que leve ao arquivo seja exibido. É uma macro sempre definida.
__Linha__
Representa o número da linha no formato inteiro de uma fonte atual. Esta macro é definida como outros, e seu valor é alterado com a ajuda do #Line.
Agora vamos destacar alguns exemplos de função macro __line__c ++.
__Linha__
Para ter uma idéia do funcionamento desta macro, aqui citamos um exemplo. Em primeiro lugar, uma biblioteca para o fluxo de entrada e saída é usada. Em seguida, usamos um log de erros de função que mantém o log de erros. Isso tem um parâmetro para aceitar a linha na forma de uma string e uma mensagem. Esta função exibirá o número da linha com a mensagem passada do programa principal para a macro.
#Define Log (msg) ErrorLog (__line__, msg)
Depois disso, definimos uma macro. Isso aceitará a sequência da linha de mensagem da função principal que passou como um argumento quando essa macro for chamada. E da mesma forma, a função de log de erros é chamada com macro de linha e a mensagem como parâmetros. O arquivo será salvo com uma extensão do .C Arquivo de código -fonte. Como precisamos ver os resultados da plataforma Linux, vá para o terminal e aplique os comandos para compilar e executar o arquivo. Use um compilador G ++ para C++.
$ g ++ -o f f.c
$ ./f
Você pode ver que, mesmo com os espaços, o número da linha é identificado através da macro da linha. A partir deste exemplo, você viu a funcionalidade de uma macro __line__. Mas no próximo exemplo, todas as macros estão coletivamente no programa. Usamos 'cout' para imprimir linhas. Cada linha contém uma macro diferente nela e esse valor é exibido. Por exemplo, para a data que usamos:
Std :: cout << ("Date :%s\n" , __Date) << std ::endl;
Agora veremos a saída. Você pode ver que o nome do arquivo, a data da compilação, o tempo de compilação e o número da linha atual são exibidos de maneira muito eficaz através de uma única peça de código para cada macro.
Usos/vantagens de macros
Conclusão
'__line__c ++ macro' é um artigo escrito para elaborar as funcionalidades básicas da macro, descrevendo os tipos e também as macros predefinidas e promovendo seus tipos. Todas essas funções são explicadas com a ajuda de um exemplo. As macros são facilmente implementadas e requerem menos tempo na compilação dos códigos. Esses recursos são projetados pelos programadores que desejam criar inovações e condições usando um pequeno pedaço de código no programa de origem base. Para esse fim, no final, o artigo é acompanhado pelos usos da macro no código -fonte e descreve como eles são benéficos em alguns aspectos.