Articles of c preprocesador

¿Cuál es una buena referencia que documenta los patrones de uso de X-Macros en C (o posiblemente en C ++)?

Una definición básica y ejemplo y algunas referencias para ” X-Macros ” se dan en esta entrada de wikipedia en el pre-procesador C : Un X-Macro es un archivo de encabezado (normalmente utiliza una extensión “.def” en lugar de la tradicional “.h”) que contiene una lista de llamadas de macro similares (que pueden denominarse “macros […]

¿Puedes hacer operadores personalizados en C ++?

¿Es posible crear un operador personalizado para que pueda hacer cosas como esta? if (“Hello, world!” contains “Hello”) … Nota: esta es una pregunta separada de “¿Es una buena idea …”;)

¿Cuál es la diferencia entre #define y const?

Posibles duplicados: ¿Por qué alguien usaría #define para definir constantes? diferencia entre una macro y una const en c ++ C ++ – enum vs. const vs. #define ¿Cuál es la diferencia entre usar #define y const para crear una constante? ¿Alguien tiene una ventaja de rendimiento sobre el otro? Naturalmente prefiero usar el const […]

Diferencia entre Enum y Definir Declaraciones

¿Cuál es la diferencia entre usar una instrucción define y una instrucción enum en C / C ++ (y hay alguna diferencia al usarlas con C o C ++)? Por ejemplo, cuando debería uno usar enum {BUFFER = 1234}; encima #define BUFFER 1234

¿Pueden las macros estar sobrecargadas por el número de argumentos?

¿Cómo funciona esto ? ¿Cómo se puede implementar una macro variadica C99 / C ++ 11 para expandirse a diferentes cosas sobre la única base de cuántos argumentos se le otorgan?

GCC, stringification y GLSL en línea?

Me gustaría declarar las cadenas de sombreado GLSL en línea usando macro cadenas: #define STRINGIFY(A) #A const GLchar* vert = STRINGIFY( #version 120\n attribute vec2 position; void main() { gl_Position = vec4( position, 0.0, 1.0 ); } ); Esto se comstack y funciona bien con VS2010 pero no comstack en gcc con: error: invalid preprocessing […]

Ver macros C expandidos

Si quiero expandir una macro C, ¿cuáles son algunas buenas maneras de hacerlo (además de rastrearla manualmente)? Por ejemplo, GTK_WIDGET_SET_FLAGS , usa una macro que usa una macro que usa una macro (o dos) … Quiero simplemente verlo de alguna manera expandido automágicamente, en lugar de buscar cada macro, en cada paso del camino. ACTUALIZAR […]

Sangrado #defines

Sé que #define s, etc. normalmente nunca se sangran. ¿Por qué? Estoy trabajando en algún código en el momento que tiene una mezcla horrible de #define s, #ifdef s, #else s, #endif s, etc. Todos estos a menudo se mezclan con el código C normal. La falta de sangría de #define hace que sea difícil […]

C / C ++ macro / template blackmagic para generar un nombre único

Las macros están bien. Las plantillas están bien. Prácticamente todo lo que funciona está bien. El ejemplo es OpenGL; pero la técnica es específica de C ++ y no se basa en el conocimiento de OpenGL. Problema preciso: Quiero una expresión E; donde no tengo que especificar un nombre único; tal que se llama a […]

#define vs const en Objective-C

Soy nuevo en Objective-C, y tengo algunas preguntas sobre const y la directiva de preprocesamiento #define . Primero, descubrí que no es posible definir el tipo de constante usando #define . ¿Porqué es eso? En segundo lugar, ¿hay ventajas de usar uno de ellos sobre el otro? Finalmente, ¿qué camino es más eficiente y / […]