gpt4 book ai didi

c++ - 函数内用户提供的代码

转载 作者:行者123 更新时间:2023-11-30 21:04:32 25 4
gpt4 key购买 nike

假设我为 Windows 和 Mac 定义了相同的函数,但返回值不同,如下所示:

#ifdef _WIN32

// Windows code
int porting(int input){
return input + 360;
}

#endif

#ifdef __APPLE__

// Mac code
int porting(int input){
return input + 180;
}

#endif

有没有办法允许用户指定在 porting() 内运行的代码,而不是有多个定义?

最佳答案

C++ 作为编译语言,没有 eval()函数,许多解释语言(例如 PHP 或 Javascript)都具有该函数。无法在运行时执行用户提供的文本代码。

也许回调足以满足您的需求?

示例:

typedef int (*userfunction)(int);

userfunction thefunction;

void set_user_function(userfunction uf)
{
thefunction = uf;
}

int porting(int input)
{
return thefunction(input);
}

关于c++ - 函数内用户提供的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11108695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com