タグ

Cとlintに関するraimon49のブックマーク (4)

  • Rustで普通にプログラミングするだけでMISRA-Cのルールを90%満足できる - 低レイヤ強くなりたい組込み屋さんのブログ

    はじめに 2019/2/10追記 記事を書いてから気づいたのですが、正確には、Rustのアトリビュートをいくつか設定すれば、MISRA-Cのルールを90%満足できるでした。 私はMISRA-Cのコーディング規約でプログラミングしたことがないため、内容に誤りがありかもしれません。間違っている点があれば、ご指摘いただけるとありがたいです。 後、いつも通りですが、C言語を貶める意図は一切ありません。 昨日からtwitterで、Rustが組込みのセキュリティが重要な分野で広まると良いなぁ、という議論がありました。 その中で、車載では、やはりMISRA基準との関係が明確になること、ということが1つの基準になりそうでした。 github.com @hashaskell さんから、MISRAコーディングルールのうち、Rustコンパイラがアトリビュートの設定を含めて、保証するルールのリストを作成しているレ

    Rustで普通にプログラミングするだけでMISRA-Cのルールを90%満足できる - 低レイヤ強くなりたい組込み屋さんのブログ
  • OCLint

    OCLint is a static code analysis tool for improving quality and reducing defects by inspecting C, C++ and Objective-C code and looking for potential problems like: Possible bugs - empty if/else/try/catch/finally statements Unused code - unused local variables and parameters Complicated code - high cyclomatic complexity, NPath complexity and high NCSS Redundant code - redundant if statement and use

  • switch文 - Wikipedia

    switch文(スイッチぶん、英: switch statement)とは、プログラミング言語において、ある式の値に応じて多分岐を行なう文である。最適化の仕方にも左右されるが、場合によってはテーブルジャンプなどに展開されることで、条件判断を繰り返すif文よりも効率的に実行されることがある。言語によっては、値を返す式として記述できるものもある。また、検査対象の式のランタイム型(実行時型情報)に応じて分岐するような、複雑なパターンマッチングの機能を持つ言語もある[1]。 言語ごとの構文[編集] C言語[編集] 構文は以下の通り。 switch (制御式) { case 値1: 文 文 ……… break; case 値2: 文 文 ……… break; default: 文 } 上記の「case」ラベルはいくつでも記述することができる。caseラベルの「値」はコンパイル時に決まる整定数式 (i

    raimon49
    raimon49 2013/04/30
    C系言語におけるbreakさせないフォールスルーの扱い。/* FALLTHROUGH */コメントを必要とするものや、文が存在しない場合のみフォールスルー可能とする実装も。
  • 無償のソースコード静的解析ツール、AdLint登場 | マイナビニュース

    オージス総研は2月28日、C言語プログラミング用の静的解析ツール「AdLint 1.0」を無償公開した。AdLint 1.0はオープンソース化されており、ライセンスとしてGNU GPL 3を採用している。ANSI C89、ISO C90、 ISO C99の一部に準拠したソースコードの解析ができるという。 AdLintではシングルモジュール解析、クロスモジュール解析、597種類の警告検知、14種類のコード情報抽出、15種類のコード品質メトリクス測定などを実装しており、コンパイラでは検出できない不具合の可能性を警告したり、「経路複雑度」、「被呼出し数」、「デッドコード数」などを測定してソースコードの品質を指標化したりできるとしている。また、同社が提供しているソースコード品質評価ツール「Adqua」と組み合わせることでソースコードの品質を視覚的なレポートで表示することもできるという。 AdLin

    raimon49
    raimon49 2012/03/01
    品質メトリクス測定
  • 1