求助 关于结构体作为函数的参数的问题
时间:10-02
整理:3721RD
点击:
这个问题已经困扰我好长时间了 希望对这方面了解的朋友指点一下
#include <reg52.h>
typedef struct
{
unsigned char a;
unsigned char b;
}mytask;
mytask task1;
void delayms(unsigned int x)//延时函数
{
unsigned char t;
while(x--)
{
for(t=0;t<120;t++);
}
}
void inittask(mytask task,unsigned char i,unsigned char j) //指望这个函数帮我给结构体成员赋值
{
task.a=i;
task.b=j;
}
void main()
{
inittask(task1,0x0f,0xf0);//我希望引用这个函数给自定义的结构体变量task1的成员赋值,但是实现不了
while(1)//让led灯的低四位灯,和高四位灯轮流闪烁
{
P2=task1.a;
delayms(500);
P2=task1.b;
delayms(500);
}
}
我先写了一个结构,然后希望通过函数void inittask(mytask task,unsigned char i,unsigned char j)对结构中的成员赋值,编译通过了 但是其实并没有成功赋值,得不到闪烁的结果。这个问题困扰了我好久 不知道为什么。
这个问题一直没有人答复我 但是我最近看书 已经找到解决这个问题的方法了 用结构体指针作为函数参数的方法 就可以对结构体的成员赋值了
void inittask(mytask *task,unsigned char i,unsigned char j)
{
task->a=i;
task->b=j;
}
void main()
{
inittask(&task1,0x0f,0xf0);
while(1)
{
P2=task1.a;
Delay1000ms();
P2=task1.b;
Delay1000ms();
}
}
看到变化了吗
虽然我没有得到答复,但是如果我自己搞清楚了 还是会和大家一起分享 希望对大家能有帮助。