多条语句的宏如何写才最安全???

hucong 2002-04-12 06:47:19
考一考大家!!很简单的问题!!!不过要在任何情况下都能编译不出错.
就拿delete p;p=NULL;两条语句来写成宏!!
...全文
69 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hucong 2002-04-14
  • 打赏
  • 举报
回复
wanghua_12(多功能国际版)写的宏才是比较安全的
其余的请看下面的代码,编译肯定出错
if(p)Delete(p);
else
.....
rty 2002-04-13
  • 打赏
  • 举报
回复
#define CLEARP(P) delete (p);\
p = NULL

因为在调用宏时,为如下写法
………………
CLEARP(P);
………………
skymost 2002-04-13
  • 打赏
  • 举报
回复
#define f(s) \
语句1\
语句2\
//......
abcicq 2002-04-13
  • 打赏
  • 举报
回复
#define Delete(p) {delete (p);(p)=NULL;}
不会错!
hello_wyq 2002-04-13
  • 打赏
  • 举报
回复
兄弟,while(1)才是死循环!

jishiping(JSP) 写的比较的规范,一般不会错。


mjm_d 2002-04-13
  • 打赏
  • 举报
回复
是 while(0)不是死循环
yhang_wang 2002-04-12
  • 打赏
  • 举报
回复
jishiping(JSP)

请教:为什么要循环呢?我不明白。
yhang_wang 2002-04-12
  • 打赏
  • 举报
回复
oh, 也许是 \
我记补情了,你在机器上写以下就知道了
yhang_wang 2002-04-12
  • 打赏
  • 举报
回复
#define CLEARP(P) /
delete p;/
p = NULL;/
jishiping 2002-04-12
  • 打赏
  • 举报
回复
#define Delete(p) { delete (p); (p) = NULL; }
bigpengbird 2002-04-12
  • 打赏
  • 举报
回复
最好不用宏!
yanwuhuan 2002-04-12
  • 打赏
  • 举报
回复
很难有最安全的宏吧?
C语言的自由度太大了,总可以找到让你失败的地方的
wanghua_12 2002-04-12
  • 打赏
  • 举报
回复
#define MYMACRO(p) do{ delete p;p=NULL;}while(0)
hucong 2002-04-12
  • 打赏
  • 举报
回复
大家嫌弃这个问题太简单?????

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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