问题标签 [mcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
15 回答
1293 浏览

c - 为什么有些函数特别长?(学术研究所需的想法!)

我正在写一个关于极长函数的小型学术研究项目。显然,我不是在寻找糟糕编程的示例,而是寻找有意义的 100、200 和 600 行长函数的示例。

我将使用为希伯来大学的硕士学位编写的脚本来研究 Linux 内核源代码,该脚本测量不同的参数,如代码行数、函数复杂度(由 MCC 测量)和其他好东西。顺便说一句,这是一本关于代码分析的精巧研究,也是推荐阅读材料。

如果您能想到任何函数应该特别长的任何充分理由,我很感兴趣?我将研究 C,但任何语言的示例和参数都会很有用。

0 投票
5 回答
518 浏览

linux-kernel - Can this kernel function be more readable? (Ideas needed for an academic research!)

Following my previous question regarding the rationale behind extremely long functions, I would like to present a specific question regarding a piece of code I am studying for my research. It's a function from the Linux Kernel which is quite long (412 lines) and complicated (an MCC index of 133). Basically, it's a long and nested switch statement

Frankly, I can't think of any way to improve this mess. A dispatch table seems both huge and inefficient, and any subroutine call would require an inconceivable number of arguments in order to cover a large-enough segment of code.

Do you think of any way this function can be rewritten in a more readable way, without losing efficiency? If not, does the code seem readable to you?

Needless to say, any answer that will appear in my research will be given full credit - both here and in the submitted paper.

Link to the function in an online source browser

0 投票
3 回答
3969 浏览

c - 如何从源文件中提取单个函数

我正在进行一项关于Linux 内核中极其冗长和复杂的函数的小型学术研究。我试图弄清楚是否有充分的理由编写 600 或 800 行长的函数。

为此,我想找到一个可以从 .c 文件中提取函数的工具,这样我就可以对该函数运行一些自动化测试。

例如,如果我cifs_parse_mount_options()在文件中有函数connect.c,我正在寻找一个大致可以工作的解决方案:

并返回函数的 523 行代码(!),从左大括号到右大括号。

当然,像这样操作现有软件包的任何方式也是gcc最有帮助的。

谢谢,

乌迪

编辑:正则表达式提取 C 函数原型声明的答案?让我相信,通过正则表达式匹配函数声明绝非易事。

0 投票
3 回答
2768 浏览

matlab - Matlab 部署:将文件添加到源代码管理?

我创建了一个运行良好的部署项目,现在我想将它添加到源代码控制存储库供其他人使用。
我面临的主要问题是创建的.prj文件deploytool包含在其他计算机上不起作用的绝对路径。到目前为止,我已经尝试了以下方法:

  • 使用mcc不带deploytool. 这很好用,但我可以找到一种方法来创建_pkg.exe包含所有内容的决赛。mcc 似乎无法创建此文件,并且似乎没有任何其他工具可以创建此文件。真的是这样吗?
  • 编辑.prj文件以包含相对路径而不是绝对路径。这仅部分起作用,因为该.prj文件包含一个名为的部分MATLABPath,该部分始终替换为当前setpath的 matlab。使用此文件的任何人都必须检查它,因为它在使用时会被更改。
  • 找到一种生成.prj文件的方法。mcc 文档说:Project files created using either mcc or deploytool are eligible to use this option.建议有一种方法可以.prj使用创建文件,mcc但我无法找到如何做到这一点。

这种情况有解决办法吗?

0 投票
3 回答
601 浏览

c++ - MATLAB任意代码执行

我正在linux下编写一个自动分级程序。有几个用 MATLAB 编写的评分器,所以我想把它们绑在一起,让学生运行一个程序来做作业,让他们选择作业。我正在使用一个 C++ 主程序,然后将 mcc 编译的 MATLAB 库链接到它。

具体来说,我的程序会读取一个配置文件以获取各种 matlab 程序的名称以及其他信息。然后它使用该信息向学生展示选择。因此,如果分配更改、添加或删除,那么您所要做的就是更改配置文件。

这个想法是,接下来,程序调用已用 mcc 编译的正确 matlab 库。但是,这意味着如果分级机发生变化,则必须重新编译库。更糟糕的是,如果添加或删除评分器,则必须重新编译整个程序。所以,我想要一个简单、不变的 matlab 库函数来直接调用分级机 m 文件。我目前有这样一个库,它对从主程序传递给它的字符串使用 eval 。

问题是,当我这样做时,显然,mcc 将分级机 m 代码吸收到自身中;编译后更改grader m代码没有效果。我希望这不会发生。我注意到 Mathworks 可能不希望我这样做,因为它可以完全绕过 matlab。这不是我的本意,我会对需要完整安装 matlab 的解决方案感到满意。

我可能的解决方案是为主程序使用 mex 文件,或者让主程序调用 mcc 库,然后调用 mex 文件,然后调用适当的分级器。我对第一个解决方案犹豫不决的原因是我不确定我必须对我的代码进行多少更改才能使其正常工作。我的代码是 C++,而不是 C,我认为这会使事情变得更复杂。但是,第二种解决方案可能会更复杂,并且最终会遇到同样的问题。

那么,对这种情况有什么想法吗?我该怎么做?

0 投票
6 回答
36172 浏览

android - 如何在 Android 模拟器中更改移动国家代码 (MCC)?

我的 Android 应用程序需要对不同的移动国家代码做出不同的反应。

它似乎被硬编码为mcc310 (US)TelephonyManager.getSimCountryIso()我可以从或使用资源文件夹中读取此值,res/values-mcc123/但如何在模拟器中设置此值?

0 投票
2 回答
1985 浏览

matlab - 如何为指定的 Matlab 运行时 (MCR) 编译 Matlab 脚本

我的机器上安装了 Matlab 2010a,客户端机器上安装了 MCR 7.6。
我试图弄清楚如何为 MCR 7.6 编译我的代码。
目前 mcc 为 7.9 编译脚本(已与 Matlab 一起安装)。

mcc 是否有任何参数或 cfg 文件中的参数?(或其他任何东西)

0 投票
4 回答
907 浏览

matlab - matlab 共享 c++ 库和 OpenCL

我有一个需要大量图像处理的项目,并希望添加 GPU 支持以加快速度。

我想知道我是否将我的 matlab 编译成 c++ 共享库并从 OpenCL 程序中调用它,这是否意味着 matlab 代码将在 GPU 上运行?

0 投票
1 回答
1407 浏览

matlab - 使用 .NET 依赖项和封装数据的枚举构建 dll 时,mcc 编译器“Depfun 错误”

在创建使用 .NET 集成和枚举封装数据的 DLL 时,我在 MATLAB R2010b 中遇到了问题。

例子:

  1. 在 MATLAB 中有一个 .NET 程序集,我们称之为“MyAssembly”(MyAssembly.dll)。
  2. 有 Matlab 枚举类“OpenMode”

    此类使用 .NET 枚举:“MyAssembly.OpenMode”以通过 Matlab 枚举访问 .NET 枚举的方式(在我的情况下,强制类型转换是必需的): p>

  3. 应导出的 Matlab 函数:

    p>

  4. 在 Matlab 中添加 .NET 程序集(检查) /li>
  5. 尝试编译DLL: ...并得到错误: /li>

mcc 编译器在代码枚举中没有检测到“MyAssembly”存在,但是这里有一个函数会编译成功:

p>

如果您在 MATLAB 中遇到过类似问题并找到了解决方案,请告诉我该怎么做。

谢谢!

问候,铁

0 投票
3 回答
1330 浏览

matlab - 我在 MATLAB 中使用 mcc 编译器时遇到问题(使用 ==> mcc 时出错,输出目录不存在)

我正在尝试通过在 matlab2010b 中执行此代码来构建 .NET 程序集文件

我收到这个错误。

我很确定这是因为目录路径“...\Source Code\...”中的空间。因为如果我只使用另一条没有空格的路径,它就可以很好地工作。

有没有办法使这项工作?

谢谢你。