Category Archives: CPP

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

C, C++: Funções com número variável de parâmetros (stdargs)

Palavras-chave: C, C++, varargs, argumentos variáveis Para escrever funções que aceitam quantidade variável de parâmetros, usa-se o mecanismo de stdargs do C. Para isso coloca-se “…” como último parâmetro na declaração da função e depois usa-se as funções de stdarg.h … Continue reading

Posted in C, CPP | 6 Comments

C++: Pré-compilação de headers no gcc

Palavras-chave: C++, C, C#, precompiled header, prefix header, g++, lento Se seu programa em C++ demora séculos para compilar, considere usar um recurso do GCC 4 que acelera compilações de maneira bastante simples. Um dos motivo porque programas C++ demoram … Continue reading

Posted in CPP | 1 Comment

C++: undefined reference to `vtable for Classe'

Palavras-chave: C++, gcc, g++, erro, compilacão, linker, linking Na maioria dos casos, o erro undefined reference to `vtable for Class’ ocorre quando falta a definicão de algum método declarado na classe. Certifique-se que seu Makefile contém o arquivo com a … Continue reading

Posted in CPP | 4 Comments

C++: Depurando exceções

Palavras-chave: exceções, gdb, depuração, debug exceptions, catch Ao depurarmos programas C++ o GDB costuma interromper a execução quando a exceção é pega (catch) ou já quando um signal é lançado e o programa é abortado. O problema é que esse … Continue reading

Posted in CPP | Leave a comment

C, C++: Transformar macros e identificadores em strings

Palavras-chave: C, C++, CPP, macro, string, identificador Para transformar o nome de um macro ou identificador em string: #define STR(s) #s Para transformar o valor de um macro ou identificador em string: #define STRV(s) STR(s) O seguinte exemplo ilustra a … Continue reading

Posted in C, CPP | 2 Comments