En C, a menudo / a veces (como cuestión de estilo) usa una staticvariable de alcance de archivo donde usaría una variable miembro de clase privada en C ++. Al escalar a programas multiproceso, simplemente agregar thread_localC11 o la extensión de larga duración se __threadadapta bien. Sé que puedes hacer exactamente lo mismo en C que en C ++ poniendo todo dentro de ay structhaciendo un conjunto de funciones que tome un puntero a eso structcomo primer argumento. Algunas bibliotecas hacen esto ampliamente. Pero mi estilo personal es mantener lo structmás pequeño posible, si es necesario.
A menudo leo o escucho a algunas personas argumentando que las variables 'globales' son muy malas. Sigo sus razones, y la mayoría de sus argumentos parecen estar relacionados con externvariables globales en términos de C. Lo que dicen es ciertamente cierto. A veces uso 1 o 2 de las externvariables declaradas en todo el programa cuando simplificará mucho las cosas y cuando es fácil hacer un seguimiento de ellas, pero ir más allá fácilmente hará que un programa sea impredecible.
¿Qué pasa con las staticvariables? ¿Siguen teniendo el mismo problema que las variables globales "reales"? Tal vez ni siquiera tengo que hacer esta pregunta y continuar si creo que lo que estoy haciendo es correcto, pero hoy vi otro tipo de publicación 'Las variables globales son MALAS', y finalmente vine aquí pensando que tal vez sea un derecho lugar para tal tipo de pregunta. Cual es tu pensamiento
Esta pregunta no es un duplicado de esto porque esta pregunta hace referencia a variables locales externy staticno locales, mientras que la otra pregunta trata sobre staticvariables de alcance de archivo y alcance de bloque .