C语言结构体可以定义在main()的{}之后吗?

来源:百度知道 编辑:UC知道 时间:2024/09/12 21:36:29
找了半天书上没说.而且书上程序要么在main()之前定义,要么在main()中一定.

如果可以需要申明吗?
请问如何申明?
哦 谢啦 各位 大概明白了.
结构体和变量一样,必须先定义后使用.
或者除非结构体建一个单独的文件用#include包含

你好:

让我来解决您的困惑

(1)何谓声明?何谓定义?

声明即是告诉编译器我可能要在后面的代码中会用到这个变量后者类型,此时编译器是不为变量做内存分配的;定义即是用到声明的变量或类型并为它做内存的分配

(2)编译器从文件起始位置开始编译,它如果没有发现你做结构体的类型声明,那么当它在main()函数中碰到用这种结构体定义的变量时,它就会报错,因为它不认识这种类型

(3)什么方式:注:楼上的错了

struct s{
};

main()
{
struct s x;
}

(3)总结:所以如果你要用你定义的结构体来定义变量,则你一点要把结构体的声明放在main()之前

祝你好运!

zhouxw2008说得没错

结构体要么在main()前声明,要不就在main()里面,绝对不能在后面

结构体声明和类的声明不一样

结构体声明就要带成员列表

而struct a b;
这是才定义
定义了一个struct a类型的b

结构体必须先声明,再定义,然后使用。
例如:
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()
{