我在文件mySFun.c中有一个s-function,它调用一个foo()函数,该函数在一个单独的文件myFoo.c中实现。当我在mySFun.c的mdlOutput函数中编写printf语句时,它们工作得很好。但是当我将printf放在myFoo.c的foo()函数中时,它们不会在命令窗口中显示它们的输出。
当printf位于从s-function调用的另一个文件中时,如何启用printf功能?
发布于 2011-05-26 21:42:55
从MEX-function写入MATLAB控制台的唯一官方方式是通过函数mexPrintf。但是,头文件mex.h包括以下行:
#define printf mexPrintf而simstruc.h包括mex.h。我怀疑您包含了mySFun.c中的simstruc.h,但没有包含myFoo.c中的simstruc.h。您可以在其他源文件中包含simstruc.h或mex.h (在那里选择#define ),也可以切换到直接调用mexPrintf。
发布于 2011-05-26 21:29:58
printf是一个C库文件,因此您不需要创建自己的:)。如果要调用itz函数foo(),则应在mySFun.h文件中插入myFoo.h。
https://stackoverflow.com/questions/6139079
复制相似问题