查看: 1593|回复: 2

[其他] 每天解决一个问题35-10:KL26中的"##"的问题

[复制链接]
  • TA的每日心情
    擦汗
    2022-3-3 09:56
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    106

    主题

    836

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    1527
    最后登录
    2023-6-12
    发表于 2015-9-28 23:52:49 | 显示全部楼层 |阅读模式
    背景
    记得在分析KL26时,说过个这个## 的用法,但是没有详细讲,今天在linux中也看到了,就再讲讲。
    解决
    举个例子吧,最容易懂了。
    1. #define PT(X,n,REG)         (((Dtype *)(&(PT##X##_BASE_PTR->##REG)))->b##n)
    复制代码

    那么PT(A,23,PDOR);的结果是什么呢?
    它是将两个宏参数贴合在一起。
    把A,23,RDOR带入到宏中,去掉##后,那么结果就是
    1. (((Dtype *)(&(PTA_BASE_PTR->PDOR)))->b23)
    复制代码

    延伸
    ## 是一个很少用的功能,一般不怎么用,在一些高大上的厂合才会见到。不防自己也用一用,提升下自己的层次。(当然并不是为了用而用,而是真的要拉高效率或提高可读性才行)。
    我知道答案 目前已有2人回答
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-11-5 18:45
  • 签到天数: 158 天

    连续签到: 1 天

    [LV.7]常住居民III

    26

    主题

    669

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1724
    最后登录
    2020-11-5
    发表于 2015-9-29 03:26:31 | 显示全部楼层
    本帖最后由 bjflsk 于 2015-9-29 03:28 编辑

    半夜学习,顶一顶!


    fsce.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-29 09:45:50 | 显示全部楼层
    链接字符,不错,谢谢分享
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-13 13:33 , Processed in 0.099027 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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