Lab C++

Codificação Eficiente

Não basta conhecer a sintaxe, é preciso conhecer a linguagem, saber a melhor forma de fazer.

Categoria: Programação C/C++

Argumentos de Linha de Comando – Parte 2: getopt

Na primeira parte dos posts sobre linha de comando já abordamos o básico, agora vamos usar uma biblioteca padrão POSIX, getopt. E por que getopt? Porque está presente na maioria das variedades de Unix, um grande mercado de desenvolvimento de C/C++ atualmente.

(mais…)

Argumentos da Linha de Comando – Parte 1: main()

Na plataforma MS Windows pouco se usa a linha de comando, mas C/C++ é muito utilizado para back end, e nesse caso a linha de comando é muito mais comum. Pra começar vamos entender como a linguagem C recebe as informações do sistema operacional. Vamos também entender quais cuidados temos que ter com argumentos de linha de comando.

(mais…)

Usando Sockets com C++ – Parte 2: Cliente

Dando sequência à série de desenvolvimento com sockets usando boost::Asio em C++ o post vai demonstrar como fazer um cliente echo que procura o servidor na rede local, nos moldes do que já foi feito com C.

(mais…)

Usando Sockets com C++ – Parte 1: Servidor

Nos dois posts anteriores foi demonstrado como utilizar sockets com C. Agora vamos ver a diferença entre C e C++, utilizando boost::Asio.

Boost é um conjunto de bibliotecas para C++ tão popular que é praticamente considerado padrão. Conta com uma grande opção de bibliotecas para os mais diversos fins, incluem bibliotecas para IO, funções matemáticas, threads, processamento paralelo, date/time, dentre diversas outras.

(mais…)

Usando Socket com C – Parte 2: Cliente

Dando continuidade ao último post, vamos aprender como fazer um cliente para o servidor echo desenvolvido na semana passada. Mas com um acréscimo, o cliente echo procura pelo servidor na rede local.

(mais…)

Usando Socket com C – Parte 1: Servidor

A biblioteca boost::Asio é uma ótima opção para networking no C++. Mas em C o mais popular é o socket mesmo. Vamos aprender algumas tarefas básicas com socket neste, e nos próximos posts.

(mais…)

Parser de Entrada de Dados com scanf

Todo mundo sabe que printf faz escrita de dados, e que scanf faz leitura de dados, mas nem todo mundo sabe usar scanf para fazer parser de entrada de dados. Nest post vamos ensinar a fazer parser de formatos básicos usando scanf.

(mais…)

Implementando Pilha com Lista Ligada em C++

No último post implementamos uma pilha usando lista ligada usando C, neste post vamos implementar a mesma pilha, mas utilizando orientação a objetos. O foco é na implementação correta da uma estrutura de dados, em primeiro lugar os dados, e depois o algoritmo que manipulam os dados.

Os dois posts em conjunto vão servir para ilustrar a importância da estrutura de dados sobre o algoritmo. No próximo post vamos discorrer um pouco mais sobre porque dar tanta importância aos dados e não ao algoritmo.

(mais…)

Implementando Pilha com Lista Ligada em C

No post de hoje vamos implementar uma pilha usando uma lista ligada em C, ou seja, sem usar classes. O mais importante hoje é demonstrar como implementar apropriadamente uma estrutura de dados e as funções que vão manipular os dados.

No próximo post vamos implementar a mesma pilha usando lista ligada utilizando C++, ou seja, utilizando classes, os dois posts em conjunto servirão como exemplo da importância das estruturas de dados no desenvolvimento de software.

(mais…)

Trace de Alocação em C

Vazamento de memória é uma pequena praga que precisa ser combatido. Em alguns sistemas pode não fazer muita diferença, mas quando o processamento envolve um volume grande de dados, ou quando a memória é restrita, como em sistemas embarcados, por exemplo, é necessário tomar muito cuidado.

Pra facilitar a detecção de vazamento de memória podemos fazer uma pequena biblioteca para localizar cada malloc sem seu devido free.

(mais…)