① 为什么结构体这样定义别人可以编译,我的却不能编译
是爱立信手机,可建议用户检查螺丝有无松动,将
我理解结构体构造候肯定能引用自身形嵌套死循环
通俗点理解定义结构体候定义其员候结构体未完发现引用未定义完结构体(自身)编译器错
该结构体类型基本型 面啊看懂 我理解该结构体类型父其结构体
其结构体必已经完构造原始父结构体引用编译器错我觉用起估计些毛病
② 一道C语言结构体与共用体的问题:已经找到编译成功的代码,但是得不到完整流程的答案:
scanf("%ld%s%*c%c%d%f",&s[i].no ,s[i].name ,&s[i].sex ,&s[i].age ,&s[i].score );
修改一下上句吧,具体修改如下:
scanf("%ld%s%d%f",&s[i].no ,s[i].name ,&s[i].age ,&s[i].score );
fflush(stdin);
scanf("%c",&s[i].sex );
原因:按照第一种方式输入容易出现s[i].sex 接受空格或回车符或者输入格式不符就自动退出的问题,用fflush(stdin);清空缓存后再输入就安全了。
③ stm32的map.h文件中结构体和寄存器的对应
结构体中顺序不固定,但是名称的话可以随便写但是你用的时候必须是相同的名称。
这个应该是和你刚开始建工程有关,你工程中选的芯片型号和你实际用的对应上就行了。
同第一条。
④ 结构体定义编译后是放在哪里的 BSS段、数据段、代码段、堆还是栈
只是自己定义了一个结构体类型,如果不定义变量,编译后代码 当然在代码段;如果定义了结构体变量,则这个变量放在数据段。
举个例子,
struct aa
{
int a;
char b;
};//这里只是声明,当然编译后在代码段
你定义变量时候
int a;//系统预定义的整型,a在数据段
struct aa number;//number算是结构体类型aa,也在数据段,只是类型不是预定义而已。
ps:纯手工,加分~
有问题,q我,270495267
⑤ 汇编语言程序中 结构体数组的定义调用方法,尤其是数组的角标(例structa[])中括号里想用变量表示
struct 结构体名
{
结构体内容;
}structa[5];
structa[5]={{},{},{},{},{}};
数组的角标只能用常量表示,这是C语言的一个语法规则
⑥ C语言结构体,这个程序的错误在哪
#include
#define
N
10
struct
student//定义结构体类型
{
int
o[10];
char
num[10];
int
score[3];
int
sum;
int
ave[10];
};
void
main()
{
int
k;
struct
student
s[N];//定义结构体数组
printf("序号
学号
数学
英语
计算机
总分
平均分\n");
for(k=0;k
评论
0
0
0
加载更多
⑦ 请教一个C语言结构体问题:编译出现很多错误,但是把文件名改成.cpp就能编译通过了,这是什么问题啊
楼上说的不全对。
C语言里边,使用struct来定义结构体,要有struct这个关键字编译器才认得是个结构体。
所以代码修改如下就能运行了。
#include "stdio.h"
#include "string.h"
#define format "|%-10s |%8d| \n"
#define data p->name,p->jbgz
struct rsda
{
char name[10];
int jbgz;
}tp[]={"liming",2500,"wanggang",3000,"zhanghan",2800,"liuyang",3200,"feng",4300};
void printdata(struct rsda pp)
{
struct rsda *p;
p=&pp;
printf(format,data);
}
void main()
{
printdata(tp[0]);
}
----------------------------
typedef struct rsda
{
char name[10];
int jbgz;
}rsda;
是重新定义了一个新的类型叫rsda,所以下面也就不会报错了。
⑧ 在写C语言结构体时,程序编译出现以下问题,请求帮助
在主函数中调用input(p);maxi=max(p);这两个函数的时候,使用的参数是指针p,而在函数实现的时候的参数是结构体型的数组,所以出现警告参数不匹配。而且结构体定义两遍,你在主函数里面定义结构体在外部函数里面是无法使用的,就会出现主函数里面使用的结构体变量和外部函数使用的结构体变量调用不同。
建议都使用结构体型的数组,这个程序里面你使用的指针没有任何意义,反而会引起不必要的麻烦。假如你的结构体数组中学生的数量不确定,建议使用指针链表,这个时候指针就很有意义。
⑨ c语言结构体的问题,请进~~
#include<stdio.h>
#include<string.h>
struct date //结构类型需要先定义后使用,定义需要移动到compare的定义之前
{
int year;
int month;
int day;
};
struct student
{
char name[20];
char sex;
struct date birth;
};
int main()
{
int compare(struct date x,struct date y);
int i,j;
struct student stu[3];
printf("please input the three students' name,sex and birthdate:\n");
for(i=0;i<3;i++)
{
scanf("%s %c %d %d %d",stu[i].name,&stu[i].sex,&stu[i].birth.year,&stu[i].birth.month,&stu[i].birth.day);
}
if(compare(stu[0].birth,stu[1].birth)>0) // 调用参数类型错误,形式参数定义是变量,实际参数要使用变量名称
{
if(compare(stu[0].birth,stu[2].birth)>0)j=0;
else j=2;
}
else
{
if(compare(stu[1].birth,stu[2].birth)>0) j=1;
else j=2;
}
printf("The oldest student is %s\n",stu[j].name);
system("pause");
}
int compare(struct date x,struct date y) //形式参数是两个结构类型变量
{
if(x.year>y.year)return -1; //参数x,y是变量,分量引用应该用圆点
else
if(x.year<y.year)return 1;
else
if(x.month>y.month)return -1;
else
if(x.month<y.month)return 1;
else
if(x.day>y.day)return -1;
else
if(x.day<y.day)return 1;
else return 0;
}