帮忙看下这个函数,C语言!传递给函数的是啥?void DrawPicture_Center(u16 *PictureAddr)这个是函数的prototype定义用的时候,写法很奇怪:DrawPicture_Center((u16 *)picture1);就是实在是不知道(u16 *)picture1这种表达
来源:学生作业帮助网 编辑:作业帮 时间:2024/12/02 09:11:02
帮忙看下这个函数,C语言!传递给函数的是啥?void DrawPicture_Center(u16 *PictureAddr)这个是函数的prototype定义用的时候,写法很奇怪:DrawPicture_Center((u16 *)picture1);就是实在是不知道(u16 *)picture1这种表达
帮忙看下这个函数,C语言!传递给函数的是啥?
void DrawPicture_Center(u16 *PictureAddr)
这个是函数的prototype定义
用的时候,写法很奇怪:DrawPicture_Center((u16 *)picture1);
就是实在是不知道(u16 *)picture1这种表达方式是什么,如果没有括号,变成
u16 *picture1 那么是16位的名字叫picture1 的 array,但显然不能这么用.
帮忙看下这个函数,C语言!传递给函数的是啥?void DrawPicture_Center(u16 *PictureAddr)这个是函数的prototype定义用的时候,写法很奇怪:DrawPicture_Center((u16 *)picture1);就是实在是不知道(u16 *)picture1这种表达
你的picture1不是u16*类型,可能是u8*类型,要传给DrawPicture_Center做参数,需要转换成u16*类型.如果你不加类型转换,有的编译器会发出警告,有些甚至直接报错提示.
我们一般使用数值传递,比如:
char a=10;
int fun(int x){}
int main()
{
fun(a);
return 0;
}
这种时候,fun传入的a是char类型,但编译器能够自动进行类型提升,把char升为int数值.这里一般都不会警告或报错.
指针则更严肃,传入的是地址.