問題タブ [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.
c - 一部の関数が非常に長いのはなぜですか? (学術研究に必要なアイデア!)
私は非常に長い関数に関する小さな学術研究プロジェクトを書いています。明らかに、私は悪いプログラミングの例を探しているのではなく、100、200、および 600 行の長さの関数の例を探しています。
ヘブライ大学で修士号取得のために書かれたスクリプトを使用して、Linux カーネル ソースを調査します。このスクリプトは、コードの行数、関数の複雑さ(MCC で測定) などのさまざまなパラメーターを測定します。ところで、コード解析についてのきちんとした研究であり、推奨される読み物です。
関数が非常に長くなければならない正当な理由を考えることができるかどうか興味がありますか? 私は C を調べますが、どの言語からの例や引数も非常に役に立ちます。
linux-kernel - このカーネル関数を読みやすくすることはできますか? (学術研究に必要なアイデア!)
非常に長い関数の背後にある理論的根拠に関する以前の質問に続いて、私が研究のために研究しているコードについて具体的な質問を提示したいと思います。これは Linux カーネルの関数で、かなり長く (412 行) 複雑です ( MCC インデックスは 133)。基本的に、これは長くネストされた switch ステートメントです。
率直に言って、この混乱を改善する方法は思いつきません。ディスパッチ テーブルは巨大で効率が悪いように見えます。また、サブルーチン呼び出しには、十分な大きさのコード セグメントをカバーするために、想像を絶する数の引数が必要になります。
効率を落とさずに、この関数をより読みやすい方法で書き直す方法はありますか? そうでない場合、コードは読みやすいと思いますか?
言うまでもなく、私の研究に現れるどんな答えも、ここと提出された論文の両方で、完全なクレジットが与えられます.
c - ソースファイルから単一の関数を抽出する方法
私は、Linux カーネルの非常に長く複雑な機能に関する小規模な学術研究に取り組んでいます。600 行または 800 行の長さの関数を記述する正当な理由があるかどうかを把握しようとしています。
その目的のために、.c ファイルから関数を抽出できるツールを見つけて、関数に対していくつかの自動テストを実行できるようにしたいと考えています。
たとえばcifs_parse_mount_options()
、 file 内に関数がある場合connect.c
、おおよそ次のように機能するソリューションを探しています。
関数の 523 行のコード (!) を左中括弧から右中括弧まで返します。
もちろん、それgcc
を行うのが好きな既存のソフトウェアパッケージを操作する方法も、最も役に立ちます。
ありがとう、
ウディ
EDIT:C関数プロトタイプ宣言を引き出すための正規表現への答えは?正規表現による関数宣言の一致は簡単ではないことを確信しました。
matlab - Matlab の配置: ソース管理にファイルを追加しますか?
かなりうまく機能する展開プロジェクトを作成しました。他の人が使用できるように、ソース管理リポジトリに追加したいと考えています。
私が直面している主な問題は、作成する.prj
ファイルにdeploytool
、他のコンピューターでは機能しない絶対パスが含まれていることです。これまでのところ、次のことを試しました。
mcc
を使用せずにスタンドアロン exe を作成しますdeploytool
。_pkg.exe
これはうまく機能しますが、すべてを含む最終版を作成する方法を見つけることができました。mcc はこのファイルを作成できないようで、作成できるツールは他にないようです。これは本当にそうですか?- ファイルを編集して
.prj
、絶対パスではなく相対パスを含めます。ファイルには、常に現在の matlabに置き換えられる.prj
というセクションが含まれているため、これは部分的にしか機能しません。このファイルを使用する人は、使用時に変更されるため、チェックアウトする必要があります。MATLABPath
setpath
- ファイルを生成する方法を見つけ
.prj
ます。mcc のドキュメントProject files created using either mcc or deploytool are eligible to use this option.
には次のように書かれてい.prj
ますmcc
。
この状況の解決策はありますか?
c++ - MATLAB の任意のコードの実行
Linuxで自動グレーダープログラムを書いています。MATLAB で書かれた採点者が何人かいるので、それらをまとめて、学生にプログラムを実行させて課題を出させ、課題を選択させたいと考えています。私は C++ メイン プログラムを使用しています。このプログラムには、mcc でコンパイルされた MATLAB ライブラリがリンクされています。
具体的には、私のプログラムは、さまざまな matlab プログラムの名前とその他の情報の構成ファイルを読み取ります。次に、その情報を使用して、学生に選択肢を提示します。したがって、割り当てが変更、追加、または削除された場合、構成ファイルを変更するだけで済みます。
次に、プログラムは mcc でコンパイルされた正しい matlab ライブラリを呼び出すという考え方です。ただし、これは、グレーダーが変更された場合、ライブラリを再コンパイルする必要があることを意味します。さらに悪いことに、グレーダーが追加または削除された場合、プログラム全体を再コンパイルする必要があります。したがって、グレーダーの m ファイルを直接呼び出す、単純で変更されない 1 つの matlab ライブラリ関数が必要です。私は現在、メインプログラムから渡された文字列に eval を使用するライブラリを持っています。
問題は、私がこれを行うと、どうやら、mcc がグレーダーの m コードをそれ自体に吸収することです。コンパイル後に grader m コードを変更しても効果はありません。これが起こらないことを望みます。Mathworks は、matlab を完全にバイパスする可能性があるため、これを行うことを望んでいない可能性があることに気付きました。それは私の意図ではなく、完全な matlab インストールを必要とするソリューションに満足しています。
私の考えられる解決策は、メイン プログラムに mex ファイルを使用するか、メイン プログラムに mcc ライブラリを呼び出してから、mex ファイルを呼び出し、適切なグレーダーを呼び出すことです。最初の解決策をためらう理由は、それを機能させるためにコードにどれだけの変更を加える必要があるかわからないからです。私のコードは C ではなく C++ です。ただし、2 番目の解決策は、より複雑で、最終的には同じ問題が発生する可能性があります。
それで、この状況について何か考えはありますか?どうすればいいですか?
android - Android Emulator で Mobile Country Code (MCC) を変更するにはどうすればよいですか?
私の Android アプリケーションは、異なるモバイル国コードに対して異なる反応をする必要があります。
mcc310 (US)にハードコーディングされているようです。TelephonyManager.getSimCountryIso()
この値は、リソース フォルダーから、またはリソース フォルダーを使用して読み取ることができますres/values-mcc123/
が、エミュレーターでこの値を設定するにはどうすればよいですか?
matlab - 指定した Matlab ランタイム (MCR) 用に Matlab スクリプトをコンパイルする方法
私のマシンには Matlab 2010a がインストールされており、クライアントのマシンには MCR 7.6 がインストールされています。
MCR 7.6 用にコードをコンパイルする方法を見つけようとしています。
現在、mcc は 7.9 用のスクリプトをコンパイルしています (これは Matlab と共にインストールされています)。
mcc には引数、または cfg ファイルのパラメータがありますか? (またはその他)
matlab - matlab共有c++ライブラリとOpenCL
多くの画像処理を必要とするプロジェクトがあり、GPUサポートを追加して処理を高速化したいと考えていました。
matlabをc++共有ライブラリにコンパイルしてOpenCLプログラム内から呼び出したのではないかと思っていましたが、それはmatlabコードがGPUで実行されることを意味しますか?
matlab - .NET 依存関係とデータをカプセル化する列挙型を使用して dll をビルドするときの mcc コンパイラ "Depfun エラー"
.NET 統合とカプセル化データの列挙を使用する DLL を作成するときに、MATLAB R2010b で問題が発生しました。
例:
- MATLAB で使用される .NET アセンブリがあります。「MyAssembly」(MyAssembly.dll) と呼びましょう。
Matlab列挙型クラス「OpenMode」があります
このクラスは .NET 列挙を使用します: "MyAssembly.OpenMode" Matlab 列挙を介して .NET 列挙にアクセスするような方法で (私の場合はキャスト型に必要です): p>エクスポートする必要がある Matlab 関数:
p>- Matlab に .NET アセンブリを追加します (チェック中) /li>
- Dll をコンパイルしてみます。 ...そしてエラーを取得します: /li>
mcc コンパイラはコード列挙で「MyAssembly」が存在することを検出しませんが、次の関数は正常にコンパイルされます。
p>MATLAB で同様の問題に直面し、解決策を見つけた場合は、どうすればよいか教えてください。
ありがとう!
よろしく、アイアン
matlab - MATLABでmccコンパイラを使用するのに問題があります(==> mccの使用エラー)出力ディレクトリが存在しません)
matlab2010bでこのコードを実行して.NETアセンブリファイルをビルドしようとしています
このエラーが発生します。
ディレクトリパス「...\SourceCode\...」のスペースが原因だと確信しています。スペースのない別のパスを使用するだけで、完全に正常に機能するためです。
これを機能させる方法はありますか?
ありがとうございました。