单片机/MCU论坛
直播中

tulesheng

9年用户 58经验值
擅长:可编程逻辑
私信 关注
[问答]

求助 关于结构体作为函数的参数的问题

本帖最后由 tulesheng 于 2015-8-30 07:51 编辑

这个问题已经困扰我好长时间了 希望对这方面了解的朋友指点一下
#include

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)对结构中的成员赋值,编译通过了 但是其实并没有成功赋值,得不到闪烁的结果。这个问题困扰了我好久 不知道为什么。

回帖(1)

tulesheng

2015-9-7 05:11:34
这个问题一直没有人答复我 但是我最近看书 已经找到解决这个问题的方法了 用结构体指针作为函数参数的方法 就可以对结构体的成员赋值了
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();
    }
}

看到变化了吗
虽然我没有得到答复,但是如果我自己搞清楚了 还是会和大家一起分享 希望对大家能有帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分