Preguntas etiquetadas 'preprocesador c'

El paso de preprocesar macros de programación de lenguajes C y C ++. Esta etiqueta también se puede usar para preguntas sobre otros compiladores / idiomas derivados de o que tienen funciones idénticas, como #directives en Objective-C o C #.
32
respuestas

¿Cuál es la diferencia entre #include <filename> y #include "filename"?

En los lenguajes de programación C y C ++, ¿cuál es la diferencia entre usar paréntesis angulares y usar comillas en la declaración de inclusión de la siguiente manera? #include <nombre_de_archivo> #include "nombre de archivo"
puesta el 22 de agosto. '08 a las 4:40
5
respuestas

¿Por qué el preprocesador C interpreta la palabra "linux" como una constante "1"?

¿Por qué el preprocesador de C en GCC interpreta la palabra linux (letras pequeñas) como constante 1? test.c: #include <stdio.h> int main (void) {int linux = 5; devuelve 0; } Resultado $ gcc -E test.c (detener después de la etapa previa ...
fijado el 06 de octubre '13 a las 19:09
11
respuestas

¿Por qué utilizar instrucciones de "sí-while" y "if-else" sin sentido en macros?

En muchas macros de C / C ++, veo un código de macro envuelto en lo que parece ser un bucle do while sin sentido. Aquí hay algunos ejemplos. # define FOO (X) do {f (X); g (x); } while (0) # define FOO (X) si (1) {f (X); g (x); } de lo contrario no veo lo que hace el tiempo hace. ¿Por qué b ...
set 30 de septiembre '08 a las 8:36 pm
2
respuestas

¿Por qué todos los archivos C escritos por mi maestro comienzan con #?

¿Por qué todos los archivos C escritos por mi maestro comienzan con #? Miro algunas notas del curso, y cada archivo fuente en C comienza con un solo # en la primera línea del programa. Luego aparecen los espacios y siguen otro ...
establecido el 11 de agosto '17 a las 10:17
3
respuestas

¿Por qué se utilizan #ifndef y #define en los archivos de encabezado de C ++?

Vi este código, como de costumbre, al principio de los archivos de encabezado: #ifndef HEADERFILE_H #define HEADERFILE_H Y al final del archivo #endif ¿Cuál es el propósito de esto?
Set 31 de octubre '09 a las 13:06
4
respuestas

Combinación de C ++ y C: ¿cómo funciona #ifdef __cplusplus?

Estoy trabajando en un proyecto con un montón de código C obsoleto. Comenzamos a escribir en C ++, lo que significa, finalmente, convertir el código obsoleto. Estoy un poco confundido por cómo interactúan C y C ++. Entiendo que envolver el código C con extern "C ...
puesta el 24 sep. '10 a las 20:03
3
respuestas

¿Cómo detectar de manera confiable Mac OS X, iOS, Linux, Windows en el preprocesador de C?

Si hay algún código C / C ++ multiplataforma que deba compilarse en Mac OS X, iOS, Linux, Windows, ¿cómo puedo detectarlos de manera confiable durante el proceso del preprocesador?
se establece el 07 de mayo de 2011 a las 11:37
3
respuestas

Definir la macro del preprocesador a través de cmake.

¿Cómo definir la variable del preprocesador a través de cmake? El código equivalente sería #define foo.
fijado el 26 de enero '12 a las 14:35
6
respuestas

El volcado del preprocesador GCC define

¿Hay alguna forma para que gcc / g ++ elimine su preprocesador de la línea de comandos? Me refiero a cosas como __GNUC__, __STDC__, etc.
set 08 feb '10 a las 10:40 pm
12
respuestas

MIN y MAX en C

¿Dónde se definen MIN y MAX en C, en todo caso? ¿Cuál es la mejor manera de implementarlos, de la manera más universal y segura posible? (Es preferible usar los compiladores de extensiones / en línea para los compiladores convencionales).
set 09 ago. '10 a las 7:49
10
respuestas

¿Cómo puedo ver el archivo fuente de C / C ++ después del preprocesamiento en Visual Studio?

Digamos que tengo un archivo fuente con muchas directivas de preprocesador. ¿Puedo ver cómo se ve después de que el preprocesador esté ocupado con él?
fijado el 10 de noviembre '08 a las 10:11
12
respuestas

C # define la macro para la impresión de depuración

Intente crear una macro que se pueda usar para imprimir mensajes de depuración cuando se defina DEBUG, por ejemplo, el siguiente pseudo código: #define DEBUG 1 #define debug_print (args ...) if (DEBUG) fprintf (stderr, args) ¿Cómo se hace esto con macro?
fijado el 29 de octubre '09 a las 19:17
12
respuestas

Advertencia del compilador "No hay nueva línea al final del archivo"

¿Cuál es el motivo de la siguiente advertencia en algunos compiladores de C ++? No hay una línea al final del archivo. ¿Por qué necesito una línea vacía al final del archivo de fuente / encabezado?
set 16 de septiembre '08 a las 4:38 pm
5
respuestas

Cómo hacer una macro variable (número variable de argumentos)

Quiero escribir una macro en C, que toma cualquier número de parámetros, no un número específico Ejemplo: # define macro (X) something_complicated (lo que sea (X)) donde X es cualquier número de parámetros, necesito esto porque lo que está sobrecargado ...
establecido el 25 de marzo de 2009 a las 5:08
38
respuestas

¿Cuándo son útiles las macros de C ++?

El preprocesador de C teme con razón y evita a la comunidad de C ++. Las funciones, constantes y patrones incorporados suelen ser una alternativa más segura y mejor que #define. La siguiente macro: #define SUCCEEDED (hr) ((HRESULT) (hr)> = 0) no ...
ambientado el 18 de septiembre '08 a las 10:46 pm