C
やさしいCの本てなんだろ?独学でほとんど来たからな。
MISRA-Cを読んでて知ったのだが…C言語に3文字表記なるものがあるらしい… 使い道が分からないが ??- は ~に置き換わる。なんでこんなものが実装されているのか?謎だ。これが実装された歴史的背景が気になる…
MISRAルール10と言ってもなんだかわからないが…
問題は単純に宣言のない関数呼び出しのため起こるバグだった。… 宣言がないくせにコンパイル通る時点で使えないな、 もっと良いコンパイラが欲しい。
定義をするdefineと 外部シンボルとリンクするextern.まさかこんな使い方ができるとは知らなかった。
ECU(Electronic Control Unit)の品質向上を目指した,C言語プログラミングの ガイドライン.品質システムの解説と127個のプログラミング標準から構成される. 自動車会社がスポンサーなので自動車用と銘打っているが,C言語プログラミングの 品質向上ガイド…
会社でネットサーフィンをしていたらMISRA-Cというのに出会った。簡単に言うと組み込み向けのC言語のコーディング規約集っぽい。昔からあるらしいんだけど全然知らなかった…
ローカル変数を宣言する場合、普通。 void func(){ int a; a=1; }と書く。でもたまに void func(){ int a; { int b=10; a=b; } }計算は適当だけどこういう書き方をする時がたまにある。もちろん一番内側の{}から外には変数bは見えないので注意が必要。C++…
C言語の新標準規格であるC99。 存在は知っていたけど、 詳しくはあまり知らなかったりする。プログラミング言語 C の新機能機能はおいおい勉強するとして、 テスト環境何使えばいいんだ?完全対応したコンパイラってどれだろ?GCCとかVCとかBCCなら対応して…
良く使う?void * 当り前だが、void * a, *b; *a = *b;すると怒られる。 *(int *)a = *(int *)b; とか *(int *)a += *(int *)b;なら、まぁ大丈夫。 じゃぁ、aとかbのポインタの先がfloatだったらどうだろう。void *a, *b; float c=1.0 ,d=2.0;a=&c; b=&d; *(…
当り前だが、データはconstであるべき。だが、手作業でデータを作成する場合は、 constを忘れることが多い。解決策として、1.データは全部ツールで作る。 2.すべての型をtypedefでconstを内包したものにする。1はまぁ問題無い。2の場合、代入等を行う…
検証した結果。やっぱり、typedef const void * const ( * const func)(void);でfunc型の関数ポインタはconstになるっぽい。
関数ポインタはvoid (*func)(void);普通こうか。じゃぁ、 const void * const (*func)(void);はconst void * const を返す関数ポインタか。んじゃ、その関数ポインタをconst にしたい場合は…普通は typedef const void * const (*_func)(void); typedef cons…