使用宏灵活的控制代码

本文探讨了宏在大型项目中的多种用途,包括避免头文件重复包含、跨平台兼容、自定义变量类型、DLL导出、错误检查、C接口的类封装以及动态生成变量。通过实例展示了宏如何提升代码的灵活性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个系列记录了前一个项目中的一些心得,《接下来一段时间的工作》列了一个目录。不过具体记录时,没有按照目录的顺序。

第一篇记一下关于宏的一些使用。

有一些(特别是纯C++)程序猿,认为宏在代码中的作用不大,尤其是使用const XXX代替宏的号召使得很多刚开始学习C或者转为C++的人放弃了使用宏。其实宏有很多用处,尤其是纯C或者嵌入式编程中,比如:

1.求一个结构体中某类型的偏移量、字节数等

2.位运算等

3.求地址、取高低位等

...

不过这些都是处理一些技术细节上的技巧,我想说的是在大型项目中如何使用宏技巧来控制代码,中间有一些方法日常写代码可会用到。

1.错综复杂的头文件包含时,用#ifdef...组合来防止头文件重复包含(略过...)

2.跨平台

   不同平台下不同编译器对C/C++的标准执行的不一致,因此如果考虑到后面有跨平台项目的移植问题,那么在项目代码的基础库中最好使用宏将一些基础关键字定义

3.使用宏定义具有本项目特色的变量类型(typedef也可以)

  example:

   #deine int MyPrjInt

4.dll导出

   大型项目多包含n个dll,各种功能块由不同的程序猿分别实现,他们向外输出dll供别人使用,所以就存在dll导出函数和导出类的问题。使用宏可以很方便的控制这些逻辑。

   example:

//1.平台管理
#if defined _WINDOWS//windows平台
    #define MY_PRJ_DLL_IMPORT __declspec(dll
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值