Preguntas etiquetadas con c-preprocessor

125
¿Debo usar #define, enum o const?

En un proyecto de C ++ en el que estoy trabajando, tengo un tipo de valor de indicador que puede tener cuatro valores. Esas cuatro banderas se pueden combinar. Las banderas describen los registros en la base de datos y pueden ser: nuevo record registro eliminado registro modificado registro...

112
#ifdef vs #if - ¿cuál es mejor / más seguro como método para habilitar / deshabilitar la compilación de secciones particulares de código?

Esto puede ser una cuestión de estilo, pero hay una pequeña división en nuestro equipo de desarrollo y me preguntaba si alguien más tenía alguna idea al respecto ... Básicamente, tenemos algunas declaraciones de impresión de depuración que desactivamos durante el desarrollo normal. Personalmente...

110
Número de línea C / C ++

En aras de la depuración, ¿puedo obtener el número de línea en los compiladores C / C ++? (forma estándar o formas específicas para ciertos compiladores) p.ej if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber without writing it by my...

103
Coma en macro C / C ++

Digamos que tenemos una macro como esta #define FOO(type,name) type name Que podríamos usar como FOO(int, int_var); Pero no siempre tan simple como eso: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Por supuesto que podríamos hacer:...

101
Macro vs función en C

Siempre vi ejemplos y casos en los que usar una macro es mejor que usar una función. ¿Alguien podría explicarme con un ejemplo la desventaja de una macro en comparación con una

99
Pragma en definir macro

¿Hay alguna forma de incrustar la declaración pragma en macro con otras declaraciones? Estoy tratando de lograr algo como: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type Estoy de...