Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda