如何在一个从s函数调用的单独c文件中使printf工作?

时间:2011-05-26 13:13:49

标签: matlab printf simulink mex

我在文件mySFun.c中有一个s函数,它调用一个函数foo(),该函数在一个单独的文件myFoo.c中实现。当我在mySFun.c中的mdlOutput函数中编写printf语句时,它们工作正常。但是当我将printf放在myFoo.c中的函数foo()中时,它们不会在命令窗口中显示它们的输出。

当printf位于从s函数调用的另一个文件中时,如何启用printf功能?

2 个答案:

答案 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文件中。