terça-feira, 19 de maio de 2009

Receita de Caipirinha

Bom... os Posts anteriores foram todos sobre programação, né?

Chegou a hora do limão (com cachaça e açucar)

Receita de caipirinha

Have fun!

sexta-feira, 3 de outubro de 2008

funções inline em C++

O que é uma função inline?

Uma função inline é um tipo de função que tem um comportamento levemente diferente das funções comuns que temos em C++. Basicamente, suas chamadas são substituídas pela lógica da função em si, em tempo de compilação.

O quê? hein?

Bom, de uma forma bem simplista, o que acontece é o seguinte:



Este pedaço de codigo, quando for compilado, acaba virando isso:



Beleza, mas e o quico?

Esta técnica traz benefícios e malefícios. Na maioria dos casos (muita calma nessa hora! isso nem sempre é assim...) o código compilado torna-se:

- Mais rápido
Isto porque nós vamos economizar as chamadas de funções, ou seja, lá no assembly, não vai existir um desvio de fluxo (um jump) a cada chamada de função.

- Maior
Como a implementação da função é "colada" em cada chamada, o tamanho do executável final tende a crescer.

Implementação

Existem duas formas de tornar uma função inline:

- explicitamente: usando a palavra reservada inline:



- implicitamente: Quando uma função é implementada na própria declaração da classe, ela vira inline.




Esse é um artifício legal da linguagem, e deve ser usado - mas com responsabilidade :-)

segunda-feira, 21 de abril de 2008

Ponteiros do Mal

Interessante a questão de uma prova, que um amigo meu fez para arrumar um emprego: Davam o seguinte codigo e pediam para falar o que o programinha ia cuspir na tela quando fosse executado:



#include <iostream.h>

int main()
{
int x = 10;
int *p;
int **q;

p = &x;
q = &p;

cout<<**q++<<endl;

return 1;

}


E aí campeão? qual o retorno do cout?


...


...


11, certo?


...

Não, cazzo! uma coisa que a gente sempre esquece é que o operador x++ é o operador de pós-incremento, ou seja, a variável x só vai ser incrementada no ciclo seguinte, fazendo com que o programa imprima "10" na tela. A baguncinha com os ponteiros foi só para tirar a atenção disso, que era o que realmente estava sendo avaliado nessa questão... :-P

segunda-feira, 3 de março de 2008

Apresentação

A idéia deste blog é criar um ambiente um pouco mais ameno para tratar de temas relacionados à computação (mais especificamente, programação). A freqüência de postagens não terá critério algum (não diga que eu não avisei) senão a minha paciência para tal.

Os temas que serão tratados aqui serão, basicamente, as linguagens de programação com as quais trabalho/trabalhei sendo elas: C/C++ (o que mais deverá ter aqui), Java, Perl, PHP, entre outras. Também já trabalhei com HTML/CSS/Javascript, então de vez em quando deve ter algum post sobre isso.

No mais, a intenção destes posts será ajudar quem está começando a programar com algumas dicas, e discutir alguns tópicos mais avançados também.

quinta-feira, 28 de fevereiro de 2008

Por que com limão?

É porque eu gosto de tudo com limão.