A vantagem da declaração global de variáveis é que elas podem ser usadas em qualquer função e em qualquer parte do código. Isso significa que podemos usá -los e seus valores em todo o nosso código. É necessário para a programação de C ++ que as variáveis globais devem ser inicializadas com expressões constantes. Se um programador ou codificador esquecer ou não conseguir fazê -lo, fará com que o erro seja discutido aqui. Este erro também é causado se as variáveis estáticas também não forem declaradas. Portanto, para evitar esse erro, é preciso passar por um valor constante enquanto inicializa a variável global ou passa por eles 0. Então, esta é uma regra definida pela linguagem C ++. Se essa situação ocorrer, causará este erro. Portanto, para corrigir esse tipo de erro, podemos declarar variáveis em uma função ou inicializá -las com um valor constante.
Sintaxe:
Esta não é uma função ou biblioteca interna. Portanto, não tem uma função padrão para chamá -la. Em vez disso, é um erro, para que terá uma mensagem que será devolvida se encontrarmos esse erro.
Erro: o elemento inicializador não é constanteO acima mostrado é a mensagem de erro. Pode mudar em alguns casos, mas o contexto da mensagem permanecerá o mesmo.
Exemplo # 01:
Agora, para obter um melhor erro e entender esse erro com mais detalhes, realizaremos um exemplo prático. Para fazer, então inicializamos variáveis globais "a" e "b". O valor da variável A é inicializado como 100. O valor de B é igual a um. Isso significa que qualquer que seja o valor de A será o mesmo que o valor de B. Em nossa função principal, imprimimos o valor de B com a mensagem "O valor de b =". Não escrevemos nenhum código complexo aqui apenas para deixar nosso ponto claro. Na linha 10, retornamos 0 porque nossa função principal tem um número inteiro como seu tipo de retorno. Agora, vamos executar nosso código para ver o que acontece.
#incluirDepois de executar nosso código, não temos a saída desejada. Em vez de nossa saída, o compilador nos deu um erro que é "elemento inicializador não é constante". Depois disso, nos mostrou o código em que o erro ocorreu e que é a linha número 3. Agora, se lembrarmos nosso código, inicializamos o valor do número inteiro B na linha 3, o que significa que há um problema com esse pedaço de código. Vamos tentar resolver esse problema.
Para resolver o problema na linha 3, verificamos nosso código e diagnosticamos o problema. Discutimos anteriormente na introdução de que esse erro ocorre quando não declaramos uma variável que declaramos globalmente em nosso código ou não passamos um valor constante para ele. O mesmo caso ocorreu aqui. Passamos o valor do número inteiro a para B. O número inteiro A é uma variável, não uma constante; portanto, seu valor pode mudar, então o compilador nos mostrou o erro.
Nós inicializamos o valor de B a 100. Depois disso, executamos o código e o código foi compilado com sucesso. Portanto, neste exemplo, deixamos claro que não podemos passar um valor dinâmico para uma variável global.
Exemplo # 02:
Este é um exemplo um pouco complexo em comparação com o anterior, mas o objetivo de fazer um exemplo complexo é fazer você entender o erro em mais detalhes. Para executá -lo, declaramos quatro números inteiros que são x, y, z e eu. Os valores das variáveis x, y e z são 10, 20 e 50, respectivamente, enquanto "i" é um número inteiro que não será usado para executar nenhuma operação. Mas será usado como iterador para o nosso loop que usaremos em nosso método principal. Também podemos declarar esse número inteiro em nosso método principal, mas achamos fácil, então declaramos aqui.
Você pode declará -lo na função principal ou em um loop para. Depois disso, declaramos um ponteiro inteiro que é igual a x. Na linha 6, declaramos uma matriz que também é declarada globalmente e passou por três valores porque tem um comprimento de 3. Em nosso método principal, escrevemos um loop que será executado três vezes e imprimirá o endereço dos índices da matriz e os valores armazenados nesse índice da matriz. Agora, vamos executar nosso código para ver nossa saída.
#incluirApós a execução do nosso código, o compilador nos deu o erro, o que significa que nosso código não é compilado com sucesso. Se dermos uma olhada na mensagem de nosso erro, podemos ver que temos o mesmo erro que no exemplo anterior. Desta vez, ocorreu na linha 6 do nosso código. Se olharmos para o nosso código e a linha de verificação 6, estamos inicializando e declarando nossa matriz na linha 6. Portanto, houve um erro em declarar ou inicializar nossa matriz. Se olharmos para a parte inicial, podemos ver que passamos as variáveis y e z de acordo com os padrões de programação, mas passamos X através de um ponteiro. O ponteiro não é uma variável constante e seu valor pode mudar. Então, o código deu um erro.
Para resolver o erro, passaremos o número inteiro diretamente e ver o que acontece.
O código foi executado com sucesso retornando o endereço e os valores dos índices de nossa matriz.
Conclusão
Neste artigo, discutimos um erro que é "elemento inicializador não está correto". Discutimos o básico das variáveis globais e como inicializá -las de acordo com as regras e padrões de codificação. Também realizamos vários exemplos para obter este erro e os resolvemos.