案例1:在main()工作正常之外宣布的结构
#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;
}
Run Code Online (Sandbox Code Playgroud)
案例2:在内部声明main()给出错误
[错误]输入'main():: prod',没有用于通过链接[-fpermissive]*声明函数'int billamt(main():: prod*)'的链接
#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;
}
Run Code Online (Sandbox Code Playgroud)
Sou*_*osh 13
在内部
main()或外部声明结构的位置main()?
首先,我认为你的意思是"定义",而不是"声明".
其次,没有这样的规则,你可以定义你想要的任何地方.这完全取决于定义的范围.
如果在内部定义结构main(),则范围仅限于main().任何其他函数都看不到该定义,因此无法使用该结构定义.
如果在全局范围内定义结构(即,外部main()或任何其他函数),则该定义可全局使用,并且所有函数都可以查看和使用结构定义.