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

169
Views
¿Cómo determinar correctamente en tiempo de compilación que se admite _Float16?

Estoy tratando de determinar en tiempo de compilación que _Float16 es compatible:

 #define __STDC_WANT_IEC_60559_TYPES_EXT__ #include <float.h> #ifdef FLT16_MAX _Float16 f16; #endif

Invocaciones:

 # gcc trunk on linux on x86_64 $ gcc -std=c11 -pedantic -Wall -Wextra t0.c:4:1: warning: ISO C does not support the '_Float16' type [-Wpedantic] # clang trunk on linux on x86_64 $ clang -std=c11 -pedantic -Wall -Wextra t0.c:4:1: error: _Float16 is not supported on this target

Aquí vemos que tanto gcc como clang:

  • definir FLT16_MAX
  • no es compatible _Float16

La pregunta principal: ¿Cómo determinar correctamente en el momento de la compilación que se admite _Float16 ?

La pregunta adicional: ¿El estándar C11 (o más reciente) requiere no definir macros _MIN / _MAX si el tipo flotante correspondiente no es compatible? Por ejemplo, para tipos enteros ( <stdint.h> ) es cierto: "ni definirá las macros asociadas" (C11, 7.20 Tipos enteros <stdint.h>, 4). ¿Es lo mismo para los tipos flotantes?

UPD20211117:

  1. Invocar a gcc sin -pedantic hace que desaparezca la advertencia. Y _Float16 es compatible. ¡Estupendo!
  2. Invocar clang sin -pedantic no hace que el error desaparezca. Proabbly es un error.

Gracias al usuario n. 1.8e9-dónde-está-mi-participación m. por la idea

UPD20211118: gcc: con -pedantic se define el FLT16_MAX , lo cual es inesperado (¿o no?).

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

¿Cómo determinar correctamente en tiempo de compilación que se admite _Float16?

Compile un programa que use _Float16 . Si compila, significa que es compatible.

over 4 years ago · Santiago Trujillo Report

0

El soporte de _FloatN se puede determinar comprobando si las macros MIN / MAX (y otras) asociadas están definidas (después de incluir float.h precedido por __STDC_WANT_IEC_60559_TYPES_EXT__ ).

Extra: el mismo principio se usa para determinar el soporte de tipos de stdint.h : verifique si las macros MIN / MAX asociadas están definidas.

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!