Author Archives: Thiago Marcos Santos

C, C++: Banir funções usando o pré-processador

Quem usa o GCC pode tirar vantagem do pré-processador para banir de vez do código algumas funções consideradas maléficas como gets() e sprintf(), por exemplo. Basta acrescentar no seu código a seguinte linha: #pragma GCC poison gets sprintf Um erro … Continue reading

Posted in C, CPP | Tagged , , , , , , | 1 Comment

C, C++: Obter macros definidas pelo pré-processador

Palavras-chave: C, pré-processador, macros, macro, define, gcc O pré-processador do GCC define uma série de macros por default. Muitas delas podem lhe ser útil, caso se deseje que um determinado bloco de código seja compilado para apenas uma determinada arquitetura, … Continue reading

Posted in C, CPP | Leave a comment

C, C++: Fechar a saída padrão e de erro (stdout, stderr)

Uma forma de impedir que seu programa imprima na tela, seja por linkar com uma biblioteca que abusa da verbosidade ou para garantir que um daemon não polua seu terminal quando for para background, é fechando a saída padrão (stdout) … Continue reading

Posted in C, CPP | Tagged , , , , , | 4 Comments

C, C++: Parâmetro não utilizado

Palavras-chave: warning, unused parameter, variable Em alguns casos temos que implementar uma função (na maioria dos casos uma callback) cujo o protótipo já é definido pela API utilizada. Alguns parâmetros podem ser desnecessários, mas geram warnings de compilação caso não … Continue reading

Posted in C, CPP | 4 Comments

C, C++: Alocação dinâmica na pilha

Palavras-chave: non-constant initializers, dynamic stack allocation Muitas vezes alocamos memória para um buffer baseado em um tamanho que é passado como parâmetro para a função. Como no seguinte exemplo: void foobar (size_t size) { char *buffer = malloc(size * 2); … Continue reading

Posted in C, CPP | 6 Comments