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