Preguntas etiquetadas con c-preprocessor

Un macroprocesador de texto aplicado antes de compilar programas de lenguaje C y C ++. Esta etiqueta también se puede utilizar para preguntas sobre otros compiladores / lenguajes derivados de o que tienen características idénticas, como las #directivas en Objective-C o C #.

7
¿Por qué solo definir una macro si aún no está definida?
En toda nuestra base de código C, veo cada macro definida de la siguiente manera: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif ¿Cuál es la razón fundamental de realizar estas comprobaciones de definición …




3
Concatenar int a string usando C Preprocessor
Estoy tratando de averiguar cómo puedo concatenar un #define'd int a un #define' d string usando el preprocesador C. Mi compilador es GCC 4.1 en CentOS 5. La solución también debería funcionar para MinGW. Me gustaría agregar un número de versión a una cadena, pero la única forma en que …






6
#ifdef dentro de #define
Estoy tratando de escribir algo como esto: #define COV_ON(x) \ #ifdef COVERAGE_TOOL \ _Pragma (COVERAGE #x) #endif ¿Hay alguna forma de definir COV_ONasí? Sé que lo que hice arriba está mal, ya que no puedo tener #ifdefdentro #define. ( #no es un personaje permitido en #define). Entonces, ¿hay alguna solución?
83 c  c-preprocessor 

6
#define vs const en Objective-C
Soy nuevo en Objective-C y tengo algunas preguntas sobre constla directiva de preprocesamiento #define. Primero, descubrí que no es posible definir el tipo de constante usando #define. ¿Porqué es eso? En segundo lugar, ¿tiene alguna ventaja utilizar uno de ellos sobre el otro? Finalmente, ¿de qué manera es más eficiente …

7
Comprender la macro container_of en el kernel de Linux
Cuando estaba navegando por el kernel de Linux, encontré una container_ofmacro que se define de la siguiente manera: #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) Entiendo lo que hace container_of, pero lo que no entiendo …

4
Macros de preprocesador de varias líneas
¿Cómo hacer una macro de preprocesador de varias líneas? Sé cómo hacer una línea: #define sqr(X) (X*X) pero necesito algo como esto: #define someMacro(X) class X : public otherClass { int foo; void doFoo(); }; ¿Cómo puedo hacer que esto funcione? Este es solo un ejemplo, la macro real puede …
81 c++  c  c-preprocessor 


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.