我在文件mySFun.c中有一个s函数,它调用一个函数foo(),该函数在一个单独的文件myFoo.c中实现。当我在mySFun.c中的mdlOutput函数中编写printf语句时,它们工作正常。但是当我将printf放在myFoo.c中的函数foo()中时,它们不会在命令窗口中显示它们的输出。
当printf位于从s函数调用的另一个文件中时,如何启用printf功能?
答案 0 :(得分:6)
从MEX函数写入MATLAB控制台的唯一官方方法是通过函数mexPrintf。但是,头文件mex.h包含以下行:
#define printf mexPrintf
simstruc.h包含mex.h.我怀疑你是从mySFun.c包含simstruc.h,而不是myFoo.c。您也可以在其他源文件中包含simstruc.h或mex.h(在那里选择#define),或者直接调用mexPrintf。
答案 1 :(得分:1)
printf是一个C库文件,因此您不需要创建自己的文件:)。如果你要调用itz function foo(),你应该将myFoo.h插入到mySFun.h文件中。