C

warning: Creating default object from empty value in /home/bughunter/bughunter.tecland.com.br/modules/taxonomy/taxonomy.module on line 1390.

Comandos e declarações em expressões

O GCC oferece várias extensões à linguagem, inclusive recursos que estão no ISO C99, mas não no C89 ou C++, sendo aceitos pelo GCC no modo C89 e em C++.

Vou dar uma olhada nessas extensões e ir postando para compartilhar com quem lê essa coisa. :)

Enfim, como está no título, a primeira extensão que veremos é essa.
Ela simplesmente permite criar um bloco com loops, switch, variáveis locais no lugar de uma expressão. Um uso interessante, seria em uma macro onde você não quer avaliar uma expressão mais de uma vez, como visto abaixo.

Signal handling e non-local jumps: terminando normalmente execução de programa com SIGSEGV

Em resposta a um comentário do Murilo, fiz um teste usando jump para seguir a execução do programa onde ocorre seg. fault.

Brincadeira com o temido segmentation fault

Aloha! [1]

Começando a dar uma olhada em signals, pensei, ué, podemos mascarar a assustadora mensagem "Falha de segmentação (core dumped)" para algo mais divertido, ou até uma mensagem de debug mais agradável.