当 printf 位于从 s-function 调用的单独的 c 文件中时,如何使 printf 工作?

发布于 2024-11-09 13:54:43 字数 232 浏览 0 评论 0原文

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

当 printf 位于从 s-function 调用的另一个文件内时,如何启用 printf 功能?

I have an s-function in file mySFun.c that calls a function foo() which is implemeted in a separate file myFoo.c. When I write printf statements inside the mdlOutput function in mySFun.c, they work fine. But when I put printf inside function foo() in myFoo.c they don't show their output in command window.

How can I enable printf functionality when printf is inside another file that is called from an s-function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人间不值得 2024-11-16 13:54:43

从 MEX 函数写入 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。

The only official way to write to the MATLAB console from a MEX-function is via the function mexPrintf. However, the header file mex.h includes this line:

#define printf mexPrintf

And simstruc.h includes mex.h. I suspect you are including simstruc.h from mySFun.c, but not from myFoo.c. You can either include simstruc.h or mex.h in your other source files as well (to pick up the #define there), or switch to calling mexPrintf directly.

最后的乘客 2024-11-16 13:54:43

printf 是一个 C 库文件,因此您不需要创建您的:)。如果您要调用 itz 函数 foo(),则应该将 myFoo.h 插入 mySFun.h 文件中。

printf is a C-library file and as such you do not need to create yours :). you should instead insert the myFoo.h in the mySFun.h file if you will call itz function foo().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文