
C语言子模块中函数入口参数名可以跟全局变量名(结构体变量)一样吗
我为我的模块硬件接口设置定义了一个结构体Ili9481_Ctl_Inf然后我在主程序中定义了一个结构体变量Ili9481_Ctl_Infctl_inf;再然后我在主程序中...
我为我的模块硬件接口设置定义了一个结构体Ili9481_Ctl_Inf
然后我在主程序中定义了一个结构体变量Ili9481_Ctl_Inf ctl_inf;
再然后我在主程序中调用了模块中的这个函数
void ili9481_Set_IO_PORT(Ili9481_Ctl_Inf* ctl_inf,GPIO_TypeDef* dataBus)//这个DATABUS对这个问题没有什么影响不用理会。
现在问题来了,这个模块中的入口参数名可以跟我定义的全局结构体变量名一样吗?
这两个之间有什么关系?
谢谢 展开
然后我在主程序中定义了一个结构体变量Ili9481_Ctl_Inf ctl_inf;
再然后我在主程序中调用了模块中的这个函数
void ili9481_Set_IO_PORT(Ili9481_Ctl_Inf* ctl_inf,GPIO_TypeDef* dataBus)//这个DATABUS对这个问题没有什么影响不用理会。
现在问题来了,这个模块中的入口参数名可以跟我定义的全局结构体变量名一样吗?
这两个之间有什么关系?
谢谢 展开
3个回答
展开全部
可以,他们之间没有直接联系。入口参数(形参)与外面的全局变量,如同你在某一函数中定义一个与全局变量同名的局部变量一样,函数会优先考虑局部变量,忽略全局变量。所以你的形参与全局变量一样名字,函数不会去调用全局变量,而会去调用与形参对应的实参
展开全部
可以同名。
形参的作用域只在它所在的函数中, 在函数ili9481_Set_IO_PORT中ctl_inf是形参, 全局变量ctl_inf被屏蔽。
形参的作用域只在它所在的函数中, 在函数ili9481_Set_IO_PORT中ctl_inf是形参, 全局变量ctl_inf被屏蔽。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你问题也没必要问的这么复杂吧?
不就想问,形参和实参可不可以同名呗。
二者是否同名没什么关系。同名的情况下,二者作用域不同,当调用函数时,实参将值传给形参,然后函数调用过程中会暂时屏蔽同名实体变量,等函数调用完,形参就会释放。
不就想问,形参和实参可不可以同名呗。
二者是否同名没什么关系。同名的情况下,二者作用域不同,当调用函数时,实参将值传给形参,然后函数调用过程中会暂时屏蔽同名实体变量,等函数调用完,形参就会释放。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询