Мне было интересно, можно ли написать макрос, который ведет себя следующим образом:
void Func(int x)
{
printf("%d",x);
}
#define func Func x //or something
int main()
{
func 10; //<---- remove parenthesis
}
В этом случае func
укажет на действительную функцию func
, а 10 будет ее аргументом без скобок.
Я пытаюсь добиться чего-то похожего на оператор new
в С++, но в C.
Пример:
class Base* b = new(Base);
В этом случае class
является макросом для struct
, new
- это функция, которая принимает указатель на функцию, а Base
- это функция, которая выделяет память для struct Base
.
Я хотел бы переписать код на что-то вроде этого:
class Base* b = new Base;
Что будет возможно, если я смогу найти макрос:)