我有从命令行运行的用 C 语言编写的科学模拟代码。用户将输入模型作为model.c
文件中的一组 C 子例程提供,然后在运行时编译成代码。
某些模型属性并不总是与特定问题相关,但目前用户仍需要为该属性提供一个空的虚拟函数才能编译代码。
是否可以在源代码中嵌入模型属性的虚拟子程序,这些虚拟子程序仅在用户提供的model.c
不包含该属性的子程序时才链接?
例如,如果model.c
包含名为 的子例程temperature()
,则代码应链接到该子例程,而不是在temperature()
中找到的子例程src/dummy_function.c
。如果model.c
没有temperature()
编译器应该使用src/dummy_function.c
.
model.c
如果可能的话,我更喜欢在文件中不需要预处理器指令的解决方案。