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 #.

19
#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 prefiero hacer lo siguiente: //---- SomeSourceFile.cpp …

3
¿Qué macro predefinida puedo usar para detectar clang?
Estoy tratando de detectar el compilador utilizado para compilar mi código fuente. Puedo encontrar fácilmente macros predefinidas para buscar MSVC o GCC (ver http://predef.sourceforge.net/ por ejemplo), pero no puedo encontrar ninguna macro para verificar si hay clang. ¿Alguien sabe si clang define una macro como __CLANG__para saber qué está compilando …


10
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 hand?(dynamic compilation)


7
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: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // …
103 c++  c  macros  c-preprocessor 

11
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 función?

8
Cómo definir un símbolo de preprocesador en Xcode
¿Es posible establecer un símbolo para la compilación condicional configurando propiedades en un proyecto de Xcode? Mi objetivo es crear un símbolo que esté disponible para todos los archivos, sin tener que usar importar / incluir, de modo que un conjunto de clases comunes pueda tener un comportamiento especial en …

4
El papel de #ifdef y #ifndef
#define one 0 #ifdef one printf("one is defined "); #ifndef one printf("one is not defined "); En esto, ¿cuál es el papel de #ifdefy #ifndef, y cuál es el resultado?

8
Sangría #defines
Sé que las #defines, etc. normalmente nunca tienen sangría. ¿Por qué? Estoy trabajando en un código en este momento que tiene una mezcla horrible de #defines, #ifdefs, #elses, #endifs, etc. Todo esto a menudo se mezcla con el código C normal. La falta de sangría de la #defines dificulta su …

12
Preprocesador C ++ __VA_ARGS__ número de argumentos
Pregunta simple para la que no pude encontrar respuesta en la red. En macros de argumentos variados, ¿cómo encontrar el número de argumentos? Estoy de acuerdo con el preprocesador boost, si tiene la solución. Si hace una diferencia, estoy tratando de convertir un número variable de argumentos macro para impulsar …


4
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 acuerdo con las soluciones de …



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.