微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助 关于结构体作为函数的参数的问题

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

时间: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();
    }
}
看到变化了吗
虽然我没有得到答复,但是如果我自己搞清楚了 还是会和大家一起分享 希望对大家能有帮助。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top