Paulo Henrique Lima Oliveira

Discente do curso de Bacharelado em Ciência da Computação da Universidade Federal de Goiás (Regional Jataí). Técnico em Informática pelo Instituto Federal de Educação, Ciência e Tecnologia de Goiás – Campus Jataí. Integrante do grupo da Maratona de Programação do curso de Ciência da Computação da Universidade Federal de Goiás. Tem experiência com linguagens de programação (C, C++ e Java) e possui afinidade com desenvolvimento de software voltado para dispositivos móveis.
GitHub Twitter Facebook

Primeiros passos no desenvolvimento de aplicações Android

Aprenda os primeiros passos para iniciar o desenvolvimento de aplicações para a plataforma móvel líder do mercado. Neste artigo será abordada desde a instalação e configuração do ambiente de desenvolvimento, até a construção e a execução de um projeto em um dispositivo virtual. Por fim, exportaremos o .apk deste projeto para que possa ser executado em dispositivos reais com o Android instalado.

Continuar a ler

Ordenação Genérica em C

Introdução

Em um artigo anterior, tratei do problema da construção de estruturas de dados genéricas, isto é, estruturas capazes de manipular diferentes tipos de dados, informados no momento da criação destas estruturas. No final deste artigo, levantei a seguinte questão:

Como podemos criar uma função comparar os itens de uma estrutura de dados genérica, uma vez que ela não conhece o seu tipo, a priori. Mesmo sabendo qual é o tipo de dado, em alguns casos, não seria possível compará-los; por exemplo, quando o tipo de dado é uma estrutura complexa, criada pelo próprio desenvolvedor, como uma struct para armazenar os dados de um aluno, entre outros.

Para resolver este problema, utilizando a linguagem C, precisamos lançar mão de um recurso conhecido como funções callback. Esse tipo de função tira proveito do fato de que a linguagem C trabalha com ponteiros para funções, isto é, podemos passar para uma função, um ponteiro que aponta para o bloco da memória onde está localizada outra função do sistema (ou até mesmo a própria função que está recebendo o parâmetro). Isto permite que uma determinada função chame outras funções, mesmo sem ter conhecimentos de quais funções são estas.

Continuar a ler