問題タブ [misra]

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 投票する
1 に答える
880 参照

c++ - 関数はブロック スコープで宣言してはならない

「関数はブロックスコープで宣言してはならない」というミスラルールが理解できませんでした。ドキュメントに記載されている説明は、「ブロックスコープで宣言された関数は、囲んでいる名前空間のメンバーを参照するため、宣言は名前空間レベルで明示的に配置する必要があります。」囲んでいる名前空間のメンバーを参照するとはどういう意味ですか? 誰かが明確にすることができますか?

0 投票する
2 に答える
7328 参照

c - Cでの整数からchar配列への変換

ARM 組み込みアプリケーションを開発しています。私はちょっとばかげた問題で立ち往生しています - 私は符号なしの8ビット整数の配列を持っています:

それはいくつかのデータで初期化されています - 初期化アルゴリズムは混乱を招き、問題とは関係のない多くの変数を導入するので、ここでは再投稿しません. デバッガーの変数ウォッチにこの配列が表示され、0 から 31 までの整数値で埋められていることは確かです。

この配列の任意の要素、たとえば 15 番目を取得char*して、LCD 画面に表示できるように変換したいと思います。関数を使用して書き直しsprintfます:

1 つだけ注意してください。いいえ、このstdlib itoa()関数は MISRA-C 規格に準拠していないため、使用できません。MISRA-C 規格に従う義務があります。

その結果、dバッファーにバイナリ ゼロの値しか取得できません。何か案は?

0 投票する
3 に答える
880 参照

c - Cでスタクトメンバーとして可変サイズの配列を含める方法は?

私は、一見初歩的な問題にかなりの難問を抱えていると言わざるを得ません。配列をフィールドとして格納したい構造があります。この構造をさまざまなコンテキストで再利用したいのですが、より大きな配列が必要な場合もあれば、より小さな配列が必要な場合もあります。C では、可変サイズ バッファの使用が禁止されています。したがって、自然なアプローチは、この配列へのポインターを構造体メンバーとして宣言することです。

ただし、このアプローチの問題点は、動的メモリ割り当てを禁止する MISRA-C の規則に従わなければならないことです。したがって、メモリを割り当てて配列を初期化したい場合は、次のようにする必要があります。

MISRA 規格で禁止されています。他にどうすればこれを行うことができますか?

0 投票する
1 に答える
832 参照

c++ - parasoft C++ - スキップ

私は Parasoft C++test に慣れていて、コードの静的解析を実行したいと考えています。コードはWindriver VxWorksDiab の C++ で開発されています。テスト用にプロジェクトを構成するために、私は以下を使用します: Wind River プロジェクトを直接テストするには、Wind River Workbench プロジェクトのオプションを使用を選択します。また、カスタム プロジェクト (Workbench で管理されていないプロジェクト) の場合は、[ビルド システムのオプションを使用する] オプションを使用できます。これは、[プロジェクトのオプションを使用する] と同じメカニズムに基づいていますWind River Workbench

ただし、Misra-c ++などの実行時のコード分析ではありません

理由は何ですか?