找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1573|回复: 4
打印 上一主题 下一主题
收起左侧

C语言结构体指针调用时报错

[复制链接]
跳转到指定楼层
楼主
ID:298952 发表于 2021-6-25 09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50黑币
#include "stc8.h"
struct
{
char uart_busy_flag;//忙标志
        char *uart_send_dat_addr; //发送数据地址
        int uart_send_Total;//发送数据总长度
        int uart_send_Complete_num;//发送数据完成长度
}uart1;//串口结构体
char dat[10]={0,1,2,3,4,5,6,7,8,9};
char aa;

void uart1_send_dat(char *send_addr,int send_num)
{
        while(uart1.uart_busy_flag);
        uart1.uart_busy_flag=1;
        uart1.uart_send_dat_addr=send_addr;
        uart1.uart_send_Total=send_num;
        uart1.uart_send_Complete_num=0;
        aa=uart1.*uart_send_dat_addr;//发送数据        
}
/*
main.c(18): error C141: syntax error near '*', expected '<id>'
main.c(18): error C202: 'uart_send_dat_addr': undefined identifier
*/

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:298952 发表于 2021-6-25 09:59 | 只看该作者
我的目的是将 uart1_send_dat()中的入口参数中地址的数据赋给aa,如果把指针从结构体中拿出来就不报错,加里面就报错了
回复

使用道具 举报

板凳
ID:161164 发表于 2021-6-25 10:52 | 只看该作者
应该是这样写吧
aa=*uart1.uart_send_dat_addr;//发送数据
回复

使用道具 举报

地板
ID:592807 发表于 2021-6-25 11:30 | 只看该作者
aa=uart1.*uart_send_dat_addr;//发送数据
   
aa是变量
uart_send_dat_addr是指针,不能放一块哦
另外结构体调用也没有*号的,直接就是uart.usar_sen_dat_addr
回复

使用道具 举报

5#
ID:188940 发表于 2021-6-25 12:57 | 只看该作者
main.c(18): 错误 C141: '*' 附近的语法错误,预期为 '<id>'
main.c(18): 错误 C202: 'uart_send_dat_addr': 未定义标识符
这个是谷歌翻译的
aa=uart1.*uart_send_dat_addr;//发送数据
首先aa你定义的是一个字符变量,而*uart_send_dat_addr是一个指针。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表