Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

140
Vistas
Usar el nombre del parámetro #define sin encadenar

¿Hay alguna manera de pasar las palabras exactas al #define sin encadenar? Ejemplo de caso de uso:

 #define NUM 1 #define CREATE_FUN(X) \ void prefix_X() { \ // used exact words passed in int x = X; \ // use value later on } CREATE_FUN(NUM)

Y la salida se vería así:

 void prefix_NUM() { int x = 1; }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Use la concatenación de tokens ( ## ):

 #define NUM 1 #define CREATE_FUN(X) \ void prefix_##X() { \ int x = X; \ } CREATE_FUN(NUM)
over 4 years ago · Santiago Trujillo Denunciar

0

#define CREATE_FUN(X) \ int prefix_##X() { \ int x = X; \ return x; \ } CREATE_FUN(NUM)
over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar el operador Token Pasting (##):

 #define CREATE_FUN(X) int prefix_##X() { int x=X; return x;}

Ejemplo de caso de uso:

Algunos compiladores proporcionan una extensión que permite que ## aparezca después de una coma y antes de __VA_ARGS__ , en cuyo caso

  1. el ## no hace nada cuando VA_ARGS no está vacío

  2. elimina la coma cuando VA_ARGS está vacío.

Esto hace posible definir macros con un número variable de argumentos como fprintf (stderr, format, ##__VA_ARGS__)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda