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

145
Visualizações
Variables definidas globalmente como retorno de función

Tengo una función que devuelve el puntero al nombre del día de la semana cuando pasa el número del día de la semana. Tengo la sensación de que hago algo ilegal al usar cadenas definidas globalmente como retorno de función. ¿Es ese estilo aceptable?

 const char* const SUN_NAME = "Sun"; const char* const MON_NAME = "Mon"; const char* const TUE_NAME = "Tue"; const char* const WED_NAME = "Wed"; const char* const THU_NAME = "Thu"; const char* const FRI_NAME = "Fri"; const char* const SAT_NAME = "Sat"; char* dayOfWeekToChar(int day) { switch (day) { case SUN_NR : return SUN_NAME; break; case MON_NR : return MON_NAME; break; case TUE_NR : return TUE_NAME; break; case WED_NR : return WED_NAME; break; case THU_NR : return THU_NAME; break; case FRI_NR : return FRI_NAME; break; case SAT_NR : return SAT_NAME; break; default: break; } };
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Para profundizar en lo que dijo Eugene Sh:

  1. Es legal y aceptable.

  2. Sin embargo, los pondría en una matriz:

EJEMPLO:

 const char * DaysOfWeekNames[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; enum DaysOfWeek { SUN_NR, MON_NR,TUE_NR, WED_NR, THU_NR, FRI_NR, SAT_NR }; const char * dayOfWeekToChar(enum DaysOfWeek day) { return DaysOfWeekNames[day]; }
over 4 years ago · Santiago Trujillo Relatório

0

Lo que haces está bien, pero debería ser const char* dayOfWeekToChar(int day) , porque devuelves un puntero a const char* y no un puntero a char* .

Podrías hacer esto que es más o menos lo mismo que haces:

 const char* dayOfWeekToChar(int day) { static const char* days[] = { "Sun", "Mon", ... }; return days[day]; }

Sin embargo, probablemente debería agregar algunas comprobaciones para asegurarse de que el day esté dentro del rango [0..6] .

over 4 years ago · Santiago Trujillo Relatório

0

Esta es una forma aceptable de hacer las cosas. strerror es un ejemplo de este concepto que se usa en la biblioteca C ( strerror traduce los valores de errno a descripciones de cadenas utilizables del error que ocurrió).

Sin embargo, recomendaría una de dos cosas. Deje muy claro en su documentación que el valor de retorno de esta función NO DEBE SER MODIFICADO POR EL PROGRAMADOR, o puede asignar dinámicamente una nueva cadena para que la función de llamada pueda modificarla de manera segura.

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