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

547
Visualizações
¿Por qué alguien usaría gboolean (GLib) en lugar de tipo bool?

He estado leyendo código que usa gtk+ y he encontrado tipos como gboolean y gunichar .

Mientras pueda entender el punto de usar gunichar en lugar de wchar_t ( glib gunichar y wchar_t ), realmente no puedo entender el punto de usar gboolean en lugar de bool .

Pregunta: ¿Cuál es el punto de usar gboolean en lugar de bool ? ¿Hay algo más que tener cuidado con la consistencia del estilo del código?

No sería tan extraño para mí si se usara para una consistencia general ( si uno decide usar GLib , preferirá usar los tipos definidos allí ). Sin embargo, el autor de ese código usa int en lugar de gint . ¿El autor está siendo descuidado?


Solo para agregar más detalles ( GLib oficial como referencia ):

  • gunichar se define como typedef guint32 gunichar

  • guint32 se define como typedef unsigned int guint32

  • gboolean se define como typedef gint gboolean

  • gint se define como typedef int gint

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Uniformidad y mantenibilidad. Si en un momento determinado en el futuro se introduce un nuevo tipo utf8char , solo será cuestión de cambiar el typedef y volver a compilar, sin tener que pasar por miles de líneas de código para parchear cada uso.

Considere también que GLib está diseñado para funcionar en una amplia gama de compiladores, no todos totalmente compatibles con las últimas especificaciones. Por ejemplo, no se puede asumir la disponibilidad de los tipos bool , wchar_t y de tamaño fijo, ya que todos venían con C99 y C11. Además, el desarrollo de GLib comenzó en 1998 (como puede ver en el gráfico de colaboradores ), cuando C99 aún estaba en borrador y esas características ni siquiera eran estándar.

over 4 years ago · Santiago Trujillo Relatório

0

Recientemente descubierto, no se trata solo de consistencia; en realidad, hay una advertencia cuando se trata de plataformas big endian .

En las plataformas Big Endian probadas hasta el momento (PowerPC32, Sparc64, etc.), g_option_context_parse() fallaría al manejar el argumento declarado con C99 _Bool , como si las opciones relevantes fueran completamente ignoradas. Cambia a gboolean y todo vuelve a funcionar. Este problema no está presente en las plataformas little endian.

No estoy seguro de si es un comportamiento intencional, pero el análisis interno de los argumentos de tipo G_OPTION_ARG_NONE se maneja con gboolean , que es equivalente a un número entero nativo en términos de tamaño de byte ocupado, mientras que _Bool ocupa solo 1 byte. Probablemente eso explique el problema en el entorno big endian.

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