【发布时间】:2014-01-08 09:12:23
【问题描述】:
我想用 c 代码编写宏来释放许多这样的指针:
FREE(ptr1, ptr2, ptr3, ptr4, ptrx);
对我来说,这比
FREE(ptr1);
FREE(ptr2);
FREE(ptr3);
FREE(ptr4);
FREE(ptrx);
提前致谢
问候,
【问题讨论】:
-
这不是更好。这绝对是愚蠢的。 -1。它只会让每个新开发人员感到困惑,并且不会真正帮助任何事情。
-
我相信这可以通过可变参数宏实现,但是为此编写可变参数宏是相当大的。确保您没有使用数组或其他可比较的数据结构更合理的数个变量。
-
@JanHudec 为什么这是一个愚蠢的想法。 OP 可以根据他的需要询问他想要什么,我个人认为在一次调用中释放所有指针是个好主意
-
你应该重新考虑为什么你有这么多指针,例如使用指针数组将使其更具可读性。
for (int i = 0; i < MAX_POINTERS; ++i) free( ptr[i] ); -
即使这是一个坏主意,它也是一个有效的问题,我看不出 -1 甚至 -3 的原因。