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

280
Visualizações
Inicializar una bandera atómica en una estructura malloc'd

Estoy tratando de usar atomics en C en FreeBSD 10.1 Release con clang 3.6.1, sin embargo, cuando intento compilar un programa usando ATOMIC_FLAG_INIT en una variable atomic_flag en una struct , aparece el error: expected expression .

Aquí está el programa que estoy tratando de compilar.

 #include <stdio.h> #include <stdatomic.h> struct map { atomic_flag flag; }; int main(void) { struct map *m = malloc(sizeof(struct map)); m->flag = ATOMIC_FLAG_INIT; free(m); return 0; }

Puedo usar atomic_flag fuera de las structs como en el ejemplo a continuación, pero no en las structs , entonces, ¿cómo se usan las variables atómicas en las structs C ?

 #include <stdio.h> #include <stdatomic.h> int main(void) { atomic_flag flag = ATOMIC_FLAG_INIT; return 0; }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

atomic_flag no tiene un valor que pueda asignar o leer, sino solo un estado interno.

La única forma de interactuar con atomic_flag son las dos funciones (o cuatro si cuentas las versiones _explicit ) que se definen para él. Para su caso, cuando obtuvo su objeto a través de malloc , la bandera está en un "estado indeterminado" (7.17.8 p4 de C11). Simplemente puede ponerlo en un estado conocido aplicando una de las dos funciones, es decir, usar atomic_flag_clear para configurarlo en el estado "clear", o usar atomic_flag_test_and_set para configurarlo en el estado "set".

Usar atomic_flag_clear justo después de una asignación con malloc es equivalente a inicializar una variable con ATOMIC_FLAG_INIT .

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