2
respostas

Ponteiros e variáveis globais

Foi falado que a unica forma de se passar uma variável para uma função e seu conteúdo ser alterado seria com ponteiro, entretanto através do uso de variáveis globais também não funcionaria?

2 respostas

Olá Tarcisio, tudo bem ? Variaveis globais no mudo da programação são um assunto polemico kkkkkk. Sim, funcionaria , mas você estaria expondo sua variavel. É interessante deixar cada coisa no seu devido lugar, e acredite quando eu digo que ponteiros são um dos assuntos mais importantes do mundo da programação. Tente usa-los o máximo possivel, algumas técnicas de programação, só são possiveis graças a eles.

Em suma, sim , usar variaveis globais resolveria, mas não é uma boa prática porque iria expor a variavel, e os dados que ela guarda, para outras funções

Variáveis globais tem seus usos sim, mas tendem a trazer mais problemas que soluções. O grande problema da programação imperativa é a existência de estado, o qual adiciona a dimensão tempo no código, uma vez que o efeito acumulado da execução impacta no resultado do programa; e perde-se a garantia tácita de que duas chamadas para a mesma função, com os mesmos parâmetros, retornarão a mesma saída, pois algum side-effect obscuro pode mudar o comportamento do sistema.

Localizar o acesso a recursos em apenas poucos pontos de contato é sempre uma boa ideia, pois reduz sua área de busca no caso de algum bug. De forma geral você deve sempre pensar sob a ótica do menor privilégio de acesso possível, o que em geral chamamos de encapsulamento de código. Dê ao código acesso apenas ao mínimo necessário para a execução de uma tarefa. Programe orientado a contratos e interfaces. Modularize código e reutilize-o sempre que possível. Tenha programas compostos por funções pequenas, de não mais que 10 linhas, que façam uma única coisa. Evite uso de side-effects, e onde ocorram, deixe explícito. Sempre que possível use constantes ou faça código imutável.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software