C宏的可选[]方括号

时间:2018-11-16 10:39:38

标签: c preprocessor

是否可以为宏使用可选的[/d]参数?

我当前的宏与此类似

DO_SOMETHING(Student,marks) add_marks(Student,marks)

现在有时Student是一个数组或单个变量,因此要在student元素上使用宏,我的宏是否有可能处理此问题?

DO_SOMETHING(Student[10],80) as well as DO_SOMETHING(student,80)

1 个答案:

答案 0 :(得分:0)

最快的解决方案是修改add_marks函数,使其具有类似于输入参数的指针,并且问题不再存在。

`add_marks(类型* ptr,整数大小)

定义DO_SOMETHING(学生,成绩)

/ *如果是数组DO_SOMETHING(学生,标记) 如果是变量DO_SOMETHING(&Student,marks)`