• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51系统使用可变参数“...”的问题

wolf11111 2018-12-12 浏览量:724
学习自己构造可变参数的子函数使用“...”,做参数。知道是用堆栈传递函数的,但是在keil中仿真怎么都不行。用sizeof(*p)发现51单片机中指针变量的长度竟然是3字节,每次执行p++会让地址增加3个字节的地址,这样就没用办法使用“...”,来传递参数了,如何才能在51系统下使用类似printf这样的可变参数的子函数呢?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
其他答案 数量:5
  • 如果p是指向char或者unsigned char的话那么sizeofp不应该是3而是1,这个指针本身就有问题。
    • 发布于2018-12-28
    • 举报
    • 评论 0
    • 0
    • 0

  • printf调用的是putchar这个函数,只要这个函数实现好了就行,你说的这个问题编译器可以解决的
    • 发布于2019-01-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 你的这个是可以通过一个可变的字符,对你的字符用不同的长度来实现
    • 发布于2019-01-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 实际用的是一个不定长的指针传递,里面要先把数据长度获取才能传递参数
    • 发布于2019-01-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 里面都是有地址长度的参数的,里面就也是一个长度参数实现
    • 发布于2019-01-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51系统使用可变参数“...”的问题