大量使用宏对程序有没有什么影响?

Hinagi 2009-09-23 10:14:52
如题

我的程序会在每个函数里面都判断 输入参数和一些操作的返回值,这些地方我都用宏来代替会不会有什么影响?
...全文
230 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng_fengming 2009-09-23
  • 打赏
  • 举报
回复
一般情况下不会有什么问题的,微软为了大家用起来见名知意,在MFC中就定义了大量的宏,不过我们还是要根据需要定义合适的宏,我们的程序不是写给自己的,而是要让别人看懂。
Hinagi 2009-09-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 brookmill 的回复:]
如果是define的常数,在c++里面最好用const变量来代替。
[/Quote]

不是啊.变量的话也有一些,更多的是做逻辑判断,比如传入参数为空啊,返回值不正确啊之类的
Hinagi 2009-09-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 taodm 的回复:]
你是一个人自己玩玩的程序,还是公司里多人合作的程序?
[/Quote]

多人合作的程序
brookmill 2009-09-23
  • 打赏
  • 举报
回复
如果是define的常数,在c++里面最好用const变量来代替。
taodm 2009-09-23
  • 打赏
  • 举报
回复
你是一个人自己玩玩的程序,还是公司里多人合作的程序?
brookmill 2009-09-23
  • 打赏
  • 举报
回复
有的时候宏会有一些副作用。只要足够小心,用好了也可以。
linux代码里的各式各样的宏太多了。

liao05050075 2009-09-23
  • 打赏
  • 举报
回复
不会有什么太大影响。

不过,大量用宏的话可要小心,宏很容易出错。
herman~~ 2009-09-23
  • 打赏
  • 举报
回复
普通的安全判断不影响到程序的主要逻辑 感觉问题不大
Kusk 2009-09-23
  • 打赏
  • 举报
回复
编译器是看不到宏的(被预处理器处理掉了),所以对程序没有任何影响。顶多对读程序的人有影响~:)
forster 2009-09-23
  • 打赏
  • 举报
回复
c也有__inline关键字

宏是在预编译时展开的
inline函数是在编译时复制的

有点区别。大多数情况下 差不多
周成风 2009-09-23
  • 打赏
  • 举报
回复
可以用,但不要滥用。

最好还是少用,用C++的一些东西代替define ,比如const,inline等
zhengchuanzhou 2009-09-23
  • 打赏
  • 举报
回复
C++的const和inline函数能够替换掉很多的宏,使用宏的坏处是调试期间看不到信息,引起麻烦。

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧