C语言结构体可以定义在main()的{}之后吗?
找了半天书上没说.而且书上程序要么在main()之前定义,要么在main()中一定.如果可以需要申明吗?请问如何申明?哦谢啦各位大概明白了.结构体和变量一样,必须先定义后...
找了半天书上没说.而且书上程序要么在main()之前定义,要么在main()中一定.
如果可以需要申明吗?
请问如何申明?
哦 谢啦 各位 大概明白了.
结构体和变量一样,必须先定义后使用.
或者除非结构体建一个单独的文件用#include包含 展开
如果可以需要申明吗?
请问如何申明?
哦 谢啦 各位 大概明白了.
结构体和变量一样,必须先定义后使用.
或者除非结构体建一个单独的文件用#include包含 展开
5个回答
展开全部
你好:
让我来解决您的困惑
(1)何谓声明?何谓定义?
声明即是告诉编译器我可能要在后面的代码中会用到这个变量后者类型,此时编译器是不为变量做内存分配的;定义即是用到声明的变量或类型并为它做内存的分配
(2)编译器从文件起始位置开始编译,它如果没有发现你做结构体的类型声明,那么当它在main()函数中碰到用这种结构体定义的变量时,它就会报错,因为它不认识这种类型
(3)什么方式:注:楼上的错了
struct s{
};
main()
{
struct s x;
}
(3)总结:所以如果你要用你定义的结构体来定义变量,则你一点要把结构体的声明放在main()之前
祝你好运!
让我来解决您的困惑
(1)何谓声明?何谓定义?
声明即是告诉编译器我可能要在后面的代码中会用到这个变量后者类型,此时编译器是不为变量做内存分配的;定义即是用到声明的变量或类型并为它做内存的分配
(2)编译器从文件起始位置开始编译,它如果没有发现你做结构体的类型声明,那么当它在main()函数中碰到用这种结构体定义的变量时,它就会报错,因为它不认识这种类型
(3)什么方式:注:楼上的错了
struct s{
};
main()
{
struct s x;
}
(3)总结:所以如果你要用你定义的结构体来定义变量,则你一点要把结构体的声明放在main()之前
祝你好运!
展开全部
结构体必须先声明,再定义,然后使用。
例如:
struct x {int a; int b; int c;}; // 声明
void main()
{
struct x z; // 定义
z.a = 10; z.b = 20; z.c = 30; // 使用
...
}
----------------------------------------
如果主程序不用此结构,而是函数(子程序)用它,
这时,可以在主程序之后,但
必须在该函数之前声明,例如(完整的程序):
#include <stdio.h>
void abc();
void main()
{
abc();
}
struct s{int i;}; // 声明
void abc(){
struct s a; // 定义
a.i=3;
printf("%d",a.i); // 使用
}
例如:
struct x {int a; int b; int c;}; // 声明
void main()
{
struct x z; // 定义
z.a = 10; z.b = 20; z.c = 30; // 使用
...
}
----------------------------------------
如果主程序不用此结构,而是函数(子程序)用它,
这时,可以在主程序之后,但
必须在该函数之前声明,例如(完整的程序):
#include <stdio.h>
void abc();
void main()
{
abc();
}
struct s{int i;}; // 声明
void abc(){
struct s a; // 定义
a.i=3;
printf("%d",a.i); // 使用
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
zhouxw2008说得没错
结构体要么在main()前声明,要不就在main()里面,绝对不能在后面
结构体声明和类的声明不一样
结构体声明就要带成员列表
而struct a b;
这是才定义
定义了一个struct a类型的b
结构体要么在main()前声明,要不就在main()里面,绝对不能在后面
结构体声明和类的声明不一样
结构体声明就要带成员列表
而struct a b;
这是才定义
定义了一个struct a类型的b
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义在main之后的话,在main函数之前就必须要声明一下
比如
struct s;
int main()
...
...
struct s
{
int i;
};
比如
struct s;
int main()
...
...
struct s
{
int i;
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的乱回答,1楼的方式是正确的。结构体和函数,可以按照1楼告诉的方式,在程序之前,预先声明一次,然后再后边补充具体内容。
建议楼主学习“预编译头文件”的概念,使用H文件来定义结构体,否则,虽然正确,但不规范
建议楼主学习“预编译头文件”的概念,使用H文件来定义结构体,否则,虽然正确,但不规范
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询