風で飛んでいくチラ裏

気ままに雑記メモ書き殴り。古い記事は別blogからの引っ越しなのでレイアウトがアレです。

CFAQを読む

http://www.kouno.jp/home/c_faq/

困ったときにお世話になるFAQ。何度も見に行くけど、そのたびに違う発見が。 Cの教科書も今読み直すと違う発見があるかもなぁ。 つわけで、読んだときのメモを書き記してみよう。

1.1 > 文字データ型を(特にunsigned charを)"小さな"整数と~~

PICではよくやりました。char i; とか! スタック 256Byte なんですもの。 8bitCPUなので、コンパイラが符号拡張しませんぬ。というわけで知ってて使ってるということで。 BYTEを定義したほうがいいのかも。 最後の1文は状況が想像できず。なんかのパケット構造に当てはめるときとかかな?

1.7 これはやります。

hoge.c

-----

#include "hoge.h"

int global;

-----

hoge.h

-----

extern int global;

-----

で、globalを使う別のソースはhoge.hをインクルードする。 置き場所は…、意味合いとして大元になっている人が定義するかな…って意味不明w

・globalを使って別モジュールの変化をhogeが知りたい(別モジュールが書いて、hogeは読む)

・globalがhogeの状態を表していて、他のモジュールがそれを見たい(hogeが書いて、別モジュールが読む) こんなん。なので、R/Wからは一概には決めない。

1.21 あるよねこういうなぞなぞw 英語で内から外に読むルールを知らないと大混乱。 この辺はこっちのほうが詳しい。

http://kmaebashi.com/programmer/pointer.html

1.22 ? 後でよく読む。 遷移先をenumにしてその数分だけ関数ポインタの配列作るんじゃダメなんだろうか。 もっと簡単になるんだろうか。

1.30 PICではゼロ初期化するライブラリをリンクしないとしてくれなかったなぁ…。 これはコンパイラ特有の問題か。

1.32 今まで経験した環境だと、大体文字列リテラルは書き込み禁止領域に置かれてたなぁ。 PCじゃないけど。 どっかで前書いたけど、文字列リテラルはその先頭文字へのcharポインタを返すのだよね。

1.34 ステートマシンとか書くときはお世話になります。 どうでもいいけど関数名がポインターに成り下がるから、どこに関数が配置されてるか ダンプできるなぁ。

今回はこんなところで。

広告を非表示にする
(function(document){ var pres = document.getElementsByTagName("pre") for(var i=pres.length; i--; ){  var el = makeOl(pres[i]) pres[i].appendChild(el) } function makeOl(pre){ var ol = document.createElement("ol") , li = document.createElement("li") , df = document.createDocumentFragment() , br = pre.innerHTML.match(/\n/g) ol.className = "preLine" ol.setAttribute("role", "presentation") for(var i=br.length; i--; ){ var li2 = li.cloneNode(true) df.appendChild(li2) } ol.appendChild(df) return ol } })(document)