Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

269
Vistas
¿dónde declarar estructuras, dentro de main() o fuera de main()?

Caso 1: estructura declarada fuera de main() funcionando bien

 #include<stdio.h> #include<conio.h> struct prod { int price,usold; }; int main() { struct prod *p,a; int billamt(struct prod *); int bill; printf("enter the values \n"); scanf("%d%d",&p->price,&p->usold); bill=billamt(p); printf("bill=%d",bill); getch(); } int billamt(struct prod *i) { int b; b=(i->price*i->usold); return b; }

Caso 2: declarado dentro de main() dando error

[Error] escriba 'main()::prod' sin vinculación usada para declarar la función 'int billamt(main()::prod*)' con vinculación [-fpermissive]*

 #include<stdio.h> #include<conio.h> int main() { struct prod { int price,usold; }; struct prod *p,a; int billamt(struct prod *); int bill; printf("enter the values \n"); scanf("%d%d",&p->price,&p->usold); bill=billamt(p); printf("bill=%d",bill); getch(); } int billamt(struct prod *i) { int b; b=(i->price*i->usold); return b; }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

¿dónde declarar estructuras, dentro de main() o fuera de main() ?

  1. Lo primero, creo que quisiste decir "definir", no "declarar".

  2. En segundo lugar, no existe una regla como tal, puedes definir donde quieras. Se trata del alcance de la definición.

    • Si define la estructura dentro de main() , el alcance se limita solo a main() . Cualquier otra función no puede ver esa definición y, por lo tanto, no puede hacer uso de esa definición de estructura.

    • Si define la estructura en un ámbito global (es decir, fuera de main() o cualquier otra función), esa definición está disponible globalmente y todas las funciones pueden ver y hacer uso de la definición de estructura.

over 4 years ago · Santiago Trujillo Denunciar

0

Tiene que ver con el alcance , cuando define la estructura dentro de la función main , solo se define en el alcance de la función main , por lo que la función billamt no puede saberlo.

over 4 years ago · Santiago Trujillo Denunciar

0

La estructura es una matriz similar, solo que la diferencia principal en Array puede contener solo el mismo tipo de valores, pero una estructura puede tener diferentes tipos de valores, por lo que si necesita implementar la estructura globalmente (por globalmente quiero decir que también se puede usar en cualquier otra función) defínalo fuera de la función principal y si desea usar su estructura solo en la función principal, defínalo dentro de ella. Codificación feliz :-)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda