问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

初学C语言的疑惑。请老师们细心指导,灰常感谢。满意了的话再加100分答谢

发布网友 发布时间:2022-07-18 21:16

我来回答

3个回答

热心网友 时间:2023-10-12 18:23

这里面几个问题回答如下:
问题一:typedef structz 这个函数我不太懂,书上有点抽象;

typedef是表示重新定义一个类型,后面跟着struct就是意味着这个新的类型是一个结构,合起来就是说,通过typedef重新定一个类型,类型的名字叫做“GPIO_InitTypeDef”,这个类型是一个结构体,这个问题明白了吗?那么后面所有涉及到GPIO_InitTypeDef的,都相当于是一个类型定义,就像你定义一个int一样,比如GPIO_InitTypeDefGPIO_InitStructure,就像你定义int a道理是一样的。

问题二:u8GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx) 这个函数名字啥意思

这是这个函数的申明,告诉编译器有一个函数叫做GPIO_Inilize,参数是两个,一个是u8类型,一个是GPIO_InitTypeDef 的指针类型,返回值是u8类型。就像普通的一个函数 int run(int a ,char * b);道理一样。

GPIO_Inilize(2,&GPIO_InitStructure); 这里这个& 是怎么回事?是怎么运算的啊?

&表示地址,也就是这个结构GPIO_InitStructure的指针,很前面的解释是配合的。

问题三:P2M1 &= ~GPIOx->Pin, 这样写的是该怎么理解啊?其中x-> 是个什么东西啊?

其实这个不是x->而是GPIOx->Pin,这个是指针型的结构体引用成员变量的方法,举个例子,如果你定义了一个结构struct s1{int a,char b};你引用结构的a和b,必须使用这样的格式:s1.a或者s1.b,但是如果你定义了一个指针指向s1,即struct * ps1=&s1;这个时候,如果再想引用a或b就必须使用这样的写法:ps1->a和ps1->b

热心网友 时间:2023-10-12 18:24

1,typedef struct不是一个函数,是结构体,用来封装数据的。typedef是用来为这种数据类型定义新的名字的,会影响功能
2,u8GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx) 函数是用来初始化端口的,通过传入的参数,用 if 判断io模式,对应相应的输出。&GPIO_InitStructure表示取GPIO_InitStructure的地址作为参数传入
3,P2M1 &= ~GPIOx->Pin。你去看一下C语言中的运算符自然就能懂了,我一时也将不清楚,还得你自己看了,以后遇到才会做。
我推荐你看几本书吧,看懂了这写书,你的c语言就不成问题了(《c和指针》,《c专家编程》)

热心网友 时间:2023-10-12 18:24

问题一:typedef struct
{
u8Mode;//IO模式, 0,1,2,3
u8Pin;//要设置的端口
} GPIO_InitTypeDef;
这是C语言的基本语法,重新定义一个数据类型,这里是写程序的人自己定义了一个数据类型;这个数据类型中有两个成员,一个是Mode模式和Pin引脚。

问题二:u8GPIO_Inilize(u8 GPIO, GPIO_InitTypeDef *GPIOx) 顾名思义就是初始化GPIO口,这是初始化CPU的IO口,GPIO指定是第几个IO口,GPIOx指定是哪个IO口;
这个函数是写程序的人自己实现的。

GPIO_Inilize(2,&GPIO_InitStructure); 这里这个& 是怎么回事?是怎么运算的啊?
这个调用是用来传参,通过函数来实现的,这里传递的是2,就执行了这样一条语句
if(GPIO == 2)

{

}

问题三:P2M1 &= ~GPIOx->Pin, 这样写的是该怎么理解啊?其中x-> 是个什么东西啊?

这是GPIOx是程序定义的指针,x->是指针指向的成员。
P2M1 &= ~GPIOx->Pin,是指清除某位数据。

问题四:GPIO_InitStructure 和 GPIO_InitTypeDef 是怎么回事啊?

类似于 int a, b; <==> GPIO_InitTypeDefGPIO_InitStructure;
GPIO_InitTypeDef 是刚刚使用typedef定义的一个数据类型;

像这样的用法还有很多,不如说
typedef unsigned int uint ;
typedef unsigned char uchar;
uint a,b;
uchar c,d;
GPIO_InitTypeDef就是自己定义的一个(结构体)数据类型,GPIO_InitStructure就是一个(结构体)成员;

看到你学C语言就用这样的程序开始学习,真心佩服;
希望从简单的单片机的C语言程序学期,没有一点单片机的基础也可以学的,不过希望你找到一个好的教程,好的教学视频,完全可以学会。就看你提问都能问这么多,不错!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
不想让老婆看到我电脑里的一些东西怎么办? 桥好路由器停电后在来电老是获取lp 勒索病毒加密的文件如何恢复? TPU贴合膜多少钱 华为手机如何将输入法改为简体 肉丝炒金针菇做法 仓储冷链信息怎么申报 什么是药品冷链物流 浙江食品冷链运输多少钱 生物冷链具备什么资质 下载GTA5单机版,要英文版的,我找不到 冒险岛2 玩起来怎么帧数这么低,1080TI还是卡 求救:禁用任务管理器、语言栏、注册表单、关机非常慢的病毒是? 请高手帮忙看看函数 inix()里面的最后两句代码我只知道是获取坐标但不知道具体的含义,能详细讲解下更好 童年对阿廖沙有影响的人(3个) 影响是什么 高尔基《童年》中的外祖母对阿廖沙有哪些影响 《童年》中米哈尔舅舅对阿廖沙好吗?举例 《童年》对阿廖沙理解和感受 童年的80字的一个我想对阿廖沙说 《童年》中对阿廖沙影响最大的是? 对阿廖沙有影响的正面和反面有哪些人物? 童年对阿廖沙的评价 西红柿鸡蛋汤是家常菜之一,怎样做既操作方便,又营养美味? 谁有《六西格玛管理统计指南-MINITAB使用指南》电子版(完整的),马逢时等。553957233@qq.com 新的单簧管好吹吗?难吹的单簧管是好管吗? 布菲新出的LGENDE(传奇)单簧管好用吗 谁知道塞尔曼最新推出的旗舰单簧管“Privilege”的市场价????? 联想a858t通话音量咋调 联想a858tnike呼叫转移在什么位置 联想手机a858t 侧面的除电源键和音量键的另外一个按键是干什么用的 为什么爱奇艺里没有了x战警逆转未来 X战警:逆转未来和变形金刚在那些视频软件上比如爱奇艺 土豆........怎么看不了? 电影X战警 逆转未来 在哪里能看?pps 迅雷 爱奇艺都看不了 在爱奇艺怎么看用钱的x战警 x战警之前几部哪个播放器能看 找了风行 PPS 爱奇艺 之前的几部都看不了啊 香屋宁什么意思? 香睡宁可以改善睡眠吗 苹果6只有移动有服务其它卡没有服务? window10怎么装系统 坐大巴从济南到上海要多少小时我手机显示。十一小时。 济南到上海坐大巴用了多少小时 济南坐汽车到上海需要多长时间?发车班次 济南去上海的汽车 停在上海哪个站 T177(济南到上海)的票价 为什么酸辣粉会加清真两个字 光友酸辣粉是清真的吗 刻凡酸辣粉清真吗? 长歌行属于哪一类诗 中国平安保险卡好吗?卡丢了,保障还存在吗? 泰拉瑞亚冰霜碎片怎么获得