読者です 読者をやめる 読者になる 読者になる

ガレスタさんのDIY日記

電子回路、Web、組み込み、自作エフェクターを語るblog

組み込みコーディングにおけるメモ1

今回は組み込み開発に関するお話です。


事の発端は僕の素朴な疑問だったこのツイートから始まったのである。

ちなみにこれってどゆ意味?って方のために

if0ってのはコンパイルマクロ的な奴で#if 0 〜 #endif で囲まれた部分が無効になるというものです。

int a =0;
#if 0
if (a == 1){
Halt();
}
#endif

このような使い方をします。

一方/*コメント*/っていうのはこういう感じに使います
f:id:gsmcustomeffects:20160418050202p:plain

説明はここまで!

んで話を本題に戻すと上記のツイートで開発途中どっちの表記をつかうべきなのかという話です。

そうすると僕が尊敬しているエンジニアのMayaさんがこんな回答してくださいました。

現場の意見は本当に参考になります。。
特に組み込みという分野ではエンジニア自体が結構クローズなのでこういった意見は涙が出るレベルでうれしいです。

けつろん!

どっちでもいいけどif0推奨ですw

What is MISRA??

ちなみにMISRAというのは

Motor Industry Software Reliability Association の略です。直訳すると「自動車産業ソフトウェア信頼協会」になるでしょうか。自動車メーカー、部品メーカー、エンジニアリングコンサルタントが連携した団体です。そのミッションは「安全で信頼性の高い自動車システム用ソフトウェア作成のための自動車業界への支援を提供する」こととされています。

簡単に言うとMISRAという団体が定めているC言語用のコーディング・ガイドラインのことです。

目的としてはシステム安全設計の向上、コードの可読性の向上などがあります。
大学の授業でもやりましたがリスクマネジメントの実行というのは結構重要なファクターで可能な限り考えられるリスクはつぶさねばならないという技術者の倫理があるのでこういった指標があるのはありがたいことですね。

MISRA-C原文読んでみた

MISRA-C Rule 2.4から抜粋

f:id:gsmcustomeffects:20160418045406p:plain

Mayaさんのおっしゃる通り推奨になってます。

まとめ

今回は開発メモでしたがいかがだったでしょうか僕はまだ現場に出たことがないのでこういったおきてがあることすら初耳でした。
システム安全設計を個人で実行するのって結構困難であるので可能な限りやりつつ可読性については注意しながらソースの記述を行っていこうと思います。

このたび質問に回答いただいたMayaさん本当にありがとうございます。