組込みエンジニアとしての活動

組込みエンジニアとしての活動

extern宣言について

はじめに  日ごろから気になっていたことをで、extern宣言を記述することについて疑問があり、それについて、MISRA-Cを調査で少しわかりましたので、記述します。 プロトタイプ宣言は通常、関数を使用する前に行います. プロトタイプ宣言の...
組込みエンジニアとしての活動

可変個引数をもつ関数

はじめに  MISRA-C関係の話なのですが、可変個引数をどうするか問う言う話をしてみたいと思います。コーディングルール的に使わないとする場合や使うなら動作を文書化する必要があるようです。可変個引数の使い方を調べてみました。それではいってみ...
組込みエンジニアとしての活動

intptr_t について

はじめに  いきなり、intput_tとかかれていますが、何でしょうか?実は、下記のような記述がありまして、可能なの?と思いまして調べてみました。int (*fp)(void) ; intptr_t i;i=(intptr_t)fp; では...
組込みエンジニアとしての活動

C言語の符号なし整数演算は、オーバーフローせずにラップアラウンドする(表現可能な最大数の剰余 となる)

はじめに  C言語において、符号なし整数の演算を実施して、符号なし整数の最大値を超えた場合、決してオーバーフローせず、代わりにラップアラウンドします。それを表現可能な最大数の剰余 となると言っているようです。それではいってみましょう。 具体...
組込みエンジニアとしての活動

基本型は使用しない。

はじめに  今回は型宣言の仕方について、移植性の面で示します。こちらもMISRA-Cで規定されていますので、そちらも気になる人は見て頂ければと思います。では行ってみましょう。 基本型は使用しない。代わりにtypedefした型を使用する (1...
組込みエンジニアとしての活動

ビットフィールド

はじめに ビットフィールドの動作について処理系によってかなり違うので示します。 ビット位置が意識されたデータに対してはビットフィールドは使用しない。 NG使用例 struct S { unsigned int bit1:1; unsigne...
組込みエンジニアとしての活動

プログラムの記述において、使用する文字を文書として残す必要がある。

はじめに ちょっと理解に苦労したし、必要であるので、記入したいともいます。それではいってみましょう。  プログラムの記述において、言語規格で規定している文字以外の文字を使用する場合、コンパイラの仕様を確認し、その使い方を規定する。 言語規格...
組込みエンジニアとしての活動

#pragma も 処理系依存

はじめに  立て続けの投稿ですが、組み込みエンジニアとして必要なものを上げいこうと思っています。今回は#pragmaです。では行ってみましょう。 #pragmaとは  #pragma はコンパイラに特定の指示を与えるためのディレクティブです...
組込みエンジニアとしての活動

浮動小数点の表現方法も処理系によって違う?

はじめに  こちらも組み込みエンジニアにはぶつかる内容と思いアップ致します。かなり楽しくなってきました。行ってみましょう。 浮動小数点数の表現方法は、多くの場合IEEE 754という標準規格  浮動小数点数の表現方法は、多くの場合IEEE ...
組込みエンジニアとしての活動

インクルード指令のファイル検索順序

はじめに  インクルード指令のファイル検索順序についても、コンパイラ(処理系)によって異なるようです。まずは、下記の一般的なものを示します。処理系で異なりますので、開発時には文書化(確認)が必要です。 一般的なものインクルード指令のファイル...