gpt4 book ai didi

c++ - 在每次运行时将函数保存到相同的地址

转载 作者:行者123 更新时间:2023-12-01 14:57:39 24 4
gpt4 key购买 nike

我有一个对象,该对象具有一个指向函数的指针数组,如下所示:

class Object{
public:
bool (*function[2])() = {};
};

bool fooFunc(){return true;}
bool barFunc(){return false;}

Object obj;
void setupObject(){
obj.function[0] = &fooFunc;
obj.function[1] = &barFunc;
}


我使用µC时希望将使用的功能存储在EEPROM中,以便在重新启动程序时可以使用相同的配置恢复对象。有没有编写函数的方法来指定函数要写入的地址?

另外,我可以使用所有允许的函数(几十个)组成一个指针数组,并且只保存函数ID,但是我不知道如何有效地执行代码以及使用可维护的代码。在这里使用lambda函数会为我节省一些空间吗?另外,那意味着我的函数总是被加载,不是吗?

最佳答案

Is there a way to write functions specify the address to which a function is written to?



不。不是在标准C++中。

选择地址是链接器的工作。我不知道如何配置链接器以将功能存储在手动选择的地址中。这可能取决于您使用的链接程序。

I could make an array of pointers with all functions that are allowed ... Would using lambda functions here



否。每个lambda具有不同的类型,并且数组的所有元素均具有相同的类型。您不能有一个lambda数组。

关于c++ - 在每次运行时将函数保存到相同的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61797371/

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