【发布时间】:2021-03-31 09:50:27
【问题描述】:
假设我有函数 A、B 和 C。
我想写一个函数,如下所示:
Linker(A,B,C,{{0,1,0},{0,0,1},{0,0,0}});
数组对应于第一个列表中的哪个元素将被调用。换句话说,当 A 完成时,它启动第二个元素 B,当 B 完成时,它调用第三个元素 C,当 C 完成时,什么都不调用。
然后链接器会展开到
generic preprocessing
run A
generic postprocessing
generic preprocessing
run B
generic postprocessing
generic preprocessing
run C
generic postprocessing
我的想法是这样可以更容易地将函数链接在一起,并且可以节省我一些时间来编写预处理和后处理步骤。还有组织,防错,可理解性等......这个想法在C中可能吗?我需要使用 C++ 吗?我如何开始实施这样的想法?
我使用 stm32ide 作为我的编译器,因为此代码将在嵌入式设备上运行。
【问题讨论】:
-
C 和 C++ 是非常不同的语言。你用的是哪个?
-
我会降低代码的可读性我认为这是一个 X-Y 问题。提高你想要实现的目标。
-
这在 C 中是可能的,你需要使用函数指针。阅读更多:stackoverflow.com/questions/840501/…
-
在 C 中,此类事情通常使用函数指针完成,而在 C++ 中,则使用 lambda 或 std::bind。
-
如果这个
{{0,1,0},{0,0,1},{0,0,0}}````the input to the functions? For example,{0, 1, 0}```是第一个函数的输入?
标签: c++ c linked-list clang stm32