Preguntas con la etiqueta [c-preprocessor]
Pasar literal de matriz como argumento macro
Esto me ha estado molestando durante algún tiempo, por ejemplo, si intento escribir este código: // find the length of an array #define ARRAY_LENGTH(arr) (sizeof(arr)/sizeof(int)) // declare an array together
¿Cuál es el significado de las líneas que comienzan con un signo de almohadilla y un número como '# 1 "ac"' en la salida del preprocesador gcc?
Imprimo la salida del preprocesador C usando gcc -E a.c La salida contiene muchas líneas como # 1 "a.c" # 1 "<built-in>" # 1 "<command-line>" # 1 "a.c" # 1
"#include" un archivo de texto en un programa C como carácter[]
¿Hay alguna manera de incluir un archivo de texto completo como una cadena en un programa C en tiempo de compilación? algo como: archivo.txt: This is a little text file
¿Es posible iterar sobre argumentos en macros variadas?
Me preguntaba si es posible iterar sobre los argumentos pasados a una macro variada en C99 o usar alguna extensión de GCC. Por ejemplo, ¿es posible escribir una macro genérica
¿Cómo veo un archivo fuente C/C++ después del preprocesamiento en Visual Studio?
Digamos que tengo un archivo fuente con muchas directivas de preprocesador. ¿Es posible ver cómo se ve una vez que el preprocesador haya terminado?
Macro de tamaño de matriz que rechaza punteros
La macro estándar de tamaño de matriz que a menudo se enseña es #define ARRAYSIZE(arr) (sizeof(arr) / sizeof(arr[0])) o alguna formación equivalente. Sin embargo, este tipo de cosas tiene éxito
Macro vs función en C
A menudo veo 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 frente a una
#definir macro para depurar la impresión en C?
Intentando crear una macro que pueda usarse para imprimir mensajes de depuración cuando se define DEBUG, como el siguiente pseudocódigo: #define DEBUG 1 #define debug_print(args ...) if (DEBUG) fprintf(stderr, args)
¿Definición de macro para determinar la máquina big endian o little endian?
¿Existe una definición de macro de una línea para determinar el endianidad de la máquina? Estoy usando el siguiente código pero convertirlo a macro sería demasiado largo: unsigned char test_endian(
Uso en el mundo real de X-Macros
Acabo de enterarme de X-Macros . ¿Qué usos de X-Macros en el mundo real has visto? ¿Cuándo son la herramienta adecuada para el trabajo?
Cómo hacer una macro variada (número variable de argumentos)
Quiero escribir una macro en C que acepte cualquier número de parámetros, no un número específico ejemplo: #define macro( X ) something_complicated( whatever( X ) ) ¿Dónde Xestá cualquier número
¿Cómo verifico el sistema operativo con una directiva de preprocesador?
Necesito que mi código haga diferentes cosas según el sistema operativo en el que se compila. Estoy buscando algo como esto: #ifdef OSisWindows // do Windows-specific stuff #else // do
El preprocesador de volcado GCC define
¿Hay alguna manera de que gcc/g++ descargue las definiciones de preprocesador predeterminadas desde la línea de comando? Me refiero a cosas como __GNUC__, __STDC__y así sucesivamente.
Definir una macro de preprocesador a través de CMake
¿Cómo defino una variable de preprocesador a través de CMake? El código equivalente sería #define foo.
Preprocesador de C++ __VA_ARGS__ número de argumentos
Pregunta sencilla 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,