444444 发表于 2016-5-2 15:40:17

结构体变量

#include <stdio.h>
int main()
{
        struct student
        {
                int num;
                char name;
        }stu = {001,"li"};
        int print(struct student stu);
        print( stu );            //这个好像有问题
}
int print(struct student stu)
{
        printf("%d", stu.num);
        printf("%s", stu.name);
}

444444 发表于 2016-5-2 15:41:29

系统提示错误error C2037: “num”的左侧部分指定未定义的结构/联合“student”

444444 发表于 2016-5-2 15:42:59

看不懂这个提示,我是照着代码打的,完全看不出哪错了

mingcxx 发表于 2016-5-2 16:06:24

本帖最后由 mingcxx 于 2016-5-2 16:13 编辑

改了写了注释,就是这个:
#include <stdio.h>
struct student                                 //结构模板的定义放在所有函数外,对所有函数可用
{
        int num;
        char name;                     //字符数组为字符串留足够空间
};
void print(struct student stu);       //函数声明最好放在所有函数之外(方便编译器检查可能的参数错误等等)
int main(void)
{
        struct student stu = { 001, "li" };    //声明struct student类型的结构变量并初始化

        print(stu);

        return 0;                                       //main()函数的返回值
}
void print(struct student stu)
{
        printf("%d\n", stu.num);
        printf("%s\n", stu.name);

                                                             //不必返回一个值时就设置为void类型的返回值(也就是无返回值)
}
我的注释mingming是TabTab对齐的。。。似乎移植到这个框框里就凌乱了。。。凑合看哈

444444 发表于 2016-5-2 16:52:54

mingcxx 发表于 2016-5-2 16:06
改了写了注释,就是这个:

我的注释mingming是TabTab对齐的。。。似乎移植到这个框框里就凌乱了。。。凑 ...

太感谢了,你说的我以后注意

mingcxx 发表于 2016-5-2 17:20:56

444444 发表于 2016-5-2 16:52
太感谢了,你说的我以后注意

共同进步!哈哈

444444 发表于 2016-5-2 22:35:46

mingcxx 发表于 2016-5-2 17:20
共同进步!哈哈

今天刚下的vs2013,我发现写代码的时候,函数没有声明,没有头文件也照样能运行,这是为什么

mingcxx 发表于 2016-5-2 23:22:38

444444 发表于 2016-5-2 22:35
今天刚下的vs2013,我发现写代码的时候,函数没有声明,没有头文件也照样能运行,这是为什么

抱歉,我暂时还没学到关于这些#的预处理细节。
不过你可以看看这个帖子,应该有帮助的,http://bbs.csdn.net/topics/300104279
页: [1]
查看完整版本: 结构体变量