Baita vídeo Josias, o que dizer quanto a eficiência e uso de RAM se tratando de C para embarcados, seria melhor retornar dados de estruturas via ponteiros ou essa dica do vídeo?
@Bobsien3 жыл бұрын
Não existe uma resposta objetiva... Tudo depende. Quando vc utiliza um ponteiro, você está jogando os valores dentro de uma variável que já existe, portanto, reaproveitando um elemento de memória (seja ele local ou global). Quando você declara uma função cuja saída padrão é "uma variável", e ela possui "variáveis como entrada", você está declarando elementos de memória locais/temporários. Quando a função é chamada, o processador vai alocar todos os elementos de memoria necessários, realizar o processamento e retornar os valores. Quando ela for finalizada, ela será toda descarregada da memória, incluindo "sua saída padrão"... Ou seja: Se eu escrevo: int funcao(byte X); Eu estarei ocupando 16 bits da saida padrão + 8 bits da entrada, como elementos locais à função, que serão descarregados quando a função for concluída e finalizada. Se eu criar uma função void funcao(byte *X); Eu estou utilizando um ponteiro, logo, não estarei alocando memoria para sua execução (exceto o que for necessário para o processamento, obviamente)... São abordagens diferentes, e uma analisa é sempre importante. Se há memoria que chega para alocação dos recursos temporários, no frigir dos ovos não fará muita diferente global! Mas se você já está com pouca memoria no sistema, um uso consciente de ponteiros pode ajudar sim...