Android.mk中宏定义的高级用法剖析-安卓framework高级实战

背景:

前面的blog有讲解如何在Android.mk中进行控制安卓cpp源码中ifdef定义变量-干货技能分享,主要就是针对c++代码中经常出现的#ifdef判断进行了剖析和实战

在这里插入图片描述
但是仅仅有上面的ifdef判断这个宏是否存在是不是对宏定义作用没有发挥到最大,是否可以让宏定义有自己的内容呢?
在这里插入图片描述简单说就是想要让Product.mk中可以定义传递对应的值到cpp代码的宏定义中

实现对宏定义值传递

在这里插入图片描述
上面就是一个经典使用mk传递具体的系统的节点路径到cpp代码中,cpp代码中就可以方便根据mk传递进来的字节节点路径进行相关的设置。

使用该方法可以大大提高代码的灵活性,大家可以设想一下,在一套代码需要适配不同的产品目标时候,可以使用同一套代码逻辑来实现,差异变化的路径部可以在Product.mk中进行定义,不同的Product也可以设置不一样的节点路径。

更多framework详细代码和资料参考如下链接
投屏专题部分:

https://mp.weixin.qq.com/s/IGm6VHMiAOPejC_H3N_SNg

hal+perfetto+surfaceflinger

https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
其他课程七件套专题:在这里插入图片描述
点击这里
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频试看:
https://www.bilibili.com/video/BV1wc41117L4/

参考相关链接:
https://blog.csdn.net/zhimokf/article/details/137958615

更多framework假威风耗:androidframework007

在Verilog宏定义可以通过使用`define关键字来实现。宏定义可以用于实现代码的复用和条件编译。比如,在tb文件要实现时钟,可以使用宏定义来定义时钟周期,以便在不同的代码复用。例如,可以使用以下代码来定义时钟周期为20个时间单位,并在always块使用该宏定义来生成时钟信号: `define clk_period 20 always #(clk_period/2) clk=~clk; 此外,宏定义还可以用于定义常量或状态。例如,可以使用以下代码来定义一些状态常量: `define STATE_INIT 3'd0 `define STATE_IDLE 3'd1 `define STATE_WRIT 3'd2 `define STATE_READ 3'd3 `define STATE_WORK 3'd4 `define STATE_RETU 3'd5 这样,在代码可以直接使用这些宏定义来表示不同的状态。 此外,宏定义还可以用于条件编译。通过使用`ifdef和`endif关键字,可以根据宏定义的存在与否来选择性地编译不同的模块。例如,可以使用以下代码来根据宏定义A的存在与否来选择性地编译不同的模块: `ifdef A module one ... endmodule `else module two ... endmodule `endif 这样,如果定义了宏A,编译器将编译module one;如果没有定义宏A,编译器将编译module two。 #### 引用[.reference_title] - *1* *3* [verilogdefine宏定义用法——定义参数、条件编译](https://blog.csdn.net/m0_52040183/article/details/119750906)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Verilog宏定义`define的使用](https://blog.csdn.net/dipai7741/article/details/102063627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值