Sé que preguntaste sobre el rendimiento, pero me preguntaba sobre otro problema. ¿Estás pidiendo C y C++ o solo uno de esos idiomas? Supongo que quieres definir una estructura en una función para fines de alcance u ocultar la estructura.
Para C, puede acercarse a ocultar cosas al definir y declarar estructuras en un módulo separado y convertirlas en estáticas. Luego, puede proporcionar funciones de acceso, tal como lo haría con los miembros de una clase de C++. Debería incluir declaraciones de funciones en un archivo .h para aquellos módulos que necesitan acceder a las estructuras.
Si esto es para C++, al crear una clase y hacer que la estructura sea privada o protegida junto con su escritura, los métodos apropiados get/set/manipulate se encargan del resto.
Si editó su publicación original y expandió el motivo por el que pregunta esto, ha hecho una buena pregunta.
La única "penalización" que se me ocurre es que las instancias de estructura no se pueden referenciar desde fuera de la función. –
@JoachimPileborg - por supuesto, tengo esto en mente. Podría ser una ventaja, no una "penalización", dependiendo de la situación. –
LOL, ¿voto abajo? –