Actualmente estoy tratando de crear un código fuente en C que maneje correctamente la E / S independientemente de la endianidad del sistema de destino. Seleccioné “little endian” como mi convención de E / S, lo que significa que, para la CPU de Big Endian, necesito convertir datos mientras escribo o leo. La conversión no […]
¿Cómo escribo una macro cpp que se expande para incluir nuevas líneas?
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 […]
¿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 …”;)
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 […]
¿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
¿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?
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 […]
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 […]
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 […]