Perguntas com a marcação «c-preprocessor»

125
Devo usar #define, enum ou const?

Em um projeto C ++ em que estou trabalhando, tenho um tipo de sinalizador que pode ter quatro valores. Essas quatro bandeiras podem ser combinadas. Os sinalizadores descrevem os registros no banco de dados e podem ser: novo recorde registro excluído registro modificado registro existente Agora,...

112
#ifdef vs #if - o que é melhor / mais seguro como método para habilitar / desabilitar a compilação de seções específicas do código?

Isso pode ser uma questão de estilo, mas há um pouco de divisão em nossa equipe de desenvolvimento e eu me pergunto se mais alguém tem alguma idéia sobre o assunto ... Basicamente, temos algumas instruções de impressão de depuração que desativamos durante o desenvolvimento normal. Pessoalmente,...

110
Número da linha C / C ++

Para fins de depuração, posso obter o número da linha em compiladores C / C ++? (forma padrão ou formas específicas para certos compiladores) por exemplo if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber without writing it by my hand?(dynamic...

103
Vírgula na macro C / C ++

Digamos que temos uma macro como esta #define FOO(type,name) type name Que poderíamos usar como FOO(int, int_var); Mas nem sempre tão simplesmente: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Claro que poderíamos fazer: typedef...

99
Pragma em definir macro

Existe alguma maneira de incorporar a instrução pragma na macro com outras instruções? Estou tentando alcançar algo como: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type Aceito...