Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

296
Views
¿Hay alguna forma de definir una macro de preprocesador que incluya directivas de preprocesador?

Hay algunos bucles que me gustaría indicarle al compilador que se desarrollen con un código como el que se muestra a continuación. Es bastante largo y prefiero no copiar y pegar.

¿Pueden las sentencias #define definir macros de preprocesador?

Intenté esto:

 #define foo \ #ifdef __GNUC__ \ #if __GNUC__ >= 8 \ #pragma GCC unroll 128 \ #pragma GCC ivdep \ #endif \ #endif \ #ifdef __clang__ \ #pragma clang loop vectorize(enable) interleave(enable) \ #endif

pero cuando uso foo en el código cpp muestra que se expande de forma inválida como:

 #ifdef 4 #if 4 >= 8 #pragma GCC unroll 128 #pragma GCC ivdep #endif #endif #ifdef __clang__ #pragma clang loop vectorize(enable) interleave(enable) #endif #ifdef 4 #if 4 >= 8 #pragma GCC unroll 128 #pragma GCC ivdep #endif #endif #ifdef __clang__ #pragma clang loop vectorize(enable) interleave(enable) #endif
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No puede definir directivas de preprocesamiento de la manera que muestra en la pregunta.

Sin embargo, es posible que pueda usar el operador _Pragma para su propósito:

 #if defined __GNUC__ && __GNUC__ >= 8 #define foo _Pragma("GCC unroll 128") _Pragma("GCC ivdep") #elif defined __clang__ #define foo _Pragma("clang loop vectorize(enable) interleave(enable)") #else #define foo #endif
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!