在 C 中通过宏减少函数参数的数量

Reducing number of function arguments by macro in C

我有一个关于 C 函数的问题。有没有可能做这样的事情:

#define PRINT_SUM_OF_CONSTS()     printSum(10, 5)

void printSum(int a, int b){
    print("%d + %d = %d", a, b, a+b);
}

int main(){
    void (*pFunc)(void);
    pFunc = &PRINT_SUM_OF_CONSTS;
    pFunc();
    return 0;
}

我需要的是使用带有两个参数的函数,使用宏将参数分配给常量并将其用作不带参数的函数。这有可能吗?

pFunc是指向函数的指针,不能创建指向带有特定参数的函数调用的指针。

但是,解决方案很简单,不需要宏 - 您只需创建一个包装函数,用所需参数调用目标函数:

#include <stdio.h>

void printSum(int a, int b)
{
    printf("%d + %d = %d", a, b, a+b);
}

void printSumConst() { printSum(10, 5) ; }


int main()
{
    void (*pFunc)(void) = printSumConst;
    pFunc();
    return 0;
}