① 為什麼結構體這樣定義別人可以編譯,我的卻不能編譯
是愛立信手機,可建議用戶檢查螺絲有無松動,將
我理解結構體構造候肯定能引用自身形嵌套死循環
通俗點理解定義結構體候定義其員候結構體未完發現引用未定義完結構體(自身)編譯器錯
該結構體類型基本型 面啊看懂 我理解該結構體類型父其結構體
其結構體必已經完構造原始父結構體引用編譯器錯我覺用起估計些毛病
② 一道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;
}