Мне было интересно, можно ли написать макрос, который ведет себя следующим образом:
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;
Что будет возможно, если я смогу найти макрос:)