c
標準出力を閉じると、出力されなくなるのか試してみた。 当たり前だけど、出力されなくなった。( Mac OS X で確認 ) gist8b6f99ad7d38734b76c1 $ gcc stdout_close.c $ ./a.out stdout:10 stderr:10 fclose(stdout) stderr:10 $ gcc -v Configured with: --p…
昔作ったお試しコードを見つけたので、アップする。 関数ポインタをmallocで確保するって事をやってる。 C言語でオブジェクト指向的なプログラミングをやってみようとして作ったコードだったと思う。 gist65664512fc7c5f930760
仕事で変数の有効範囲を他者に説明する時に混乱したので整理してみる。 変数の有効範囲は、下記2つの要素で決まる。 宣言箇所( 関数内, 関数外 ) 記憶クラス指定子( extern, static, auto, register )の指定 ソースで表すと gist0473e607c28d6b6d97ff 仕事を…
MISRA-C*1 2012では、「gotoを使用しない」が推奨になったようです。確か、2004では必須になっていたはず。 ただし、同一関数内でのジャンプに留めておく事は必須のようです。 同一関数内でgotoを使った方が良い場面って、「多重ループから一気に抜け出す」…
forやめろ -- LL Diver 2014 LT枠 LL DiverのLT「1から100の整数を出力してください( ただし5つの異なる方法を用いて )」をうけてやってきましたが、10個でネタが切れたので終了にします。 慣れもあると思いますが、forループが一番考えやすいです。言語に機…
これまでのやり方 1回目:for 2回目:do while 3回目:while 4回目:再帰 5回目:goto 6回目:擬似terator 7回目:べた書き 8回目:マクロでeach風 9回目:system関数 今回のやり方 1から100を記録したテキストファイルを読んで、出力。
これまでのやり方 1回目:for 2回目:do while 3回目:while 4回目:再帰 5回目:goto 6回目:擬似terator 7回目:べた書き 8回目:マクロでeach風 今回のやり方 system関数を使って、外部コマンドで出力。
これまでのやり方 1回目:for 2回目:do while 3回目:while 4回目:再帰 5回目:goto 6回目:擬似terator 7回目:べた書き 今回のやり方 マクロを使って、each風。無理矢理過ぎる・・・
これまでのやり方 1回目:for 2回目:do while 3回目:while 4回目:再帰 5回目:goto 6回目:擬似terator 今回のやり方 ループを使わないでべた書き。
擬似iteratorで1から100の整数を出力。 ループをシンプルに書けますね。ただし、このやり方だと1個しかiteratorつくれない。_iterator構造体にデータを置けば複数個作れるようになるのですが、今度はカプセル化が微妙になるのです。 これまでのやり方 1回目…
gotoで1から100の整数を出力。 これまでのやり方 1回目:for 2回目:do while 3回目:while 4回目:再帰
再帰で1から100の整数を出力。 これまでのやり方 1回目:for 2回目:do while 3回目:while
今回はwhileで1から100の整数を出力。 これまでのやり方 1回目:for 2回目:do while
今回はdo whileで1から100の整数を出力。 これまでのやり方 1回目:for
forやめろ -- LL Diver 2014 LT枠 LL DiverのLTの1コマで、「1から100の整数を出力してください( ただし5つの異なる方法を用いて )」という話がありました。バカらしいの込みでもいいから5つ以上つくってみたいと思います。 まずはシンプルにforループを使用…
勤め先でもMISRA-C導入を視野に入れているというのもあり、先日購入した。 英語だから読むのがおっくうだけど、読んでいこう。(日本語訳版が早々に出ると嬉しい。) 購入先:http://www.misra.org.uk/shop/buy_now.php
いきなりですが、配列の値を参照するための a[1] というのは、 *(a + 1) を少しでも気楽に書けるようにするための構文らしいです(こういうのをシンタックスシュガーと呼ぶらしい)。 でもって、*(a + 1) と *(1 + a) の値は同じになりますね?ここで、*(1 + a…
このコードについて???? コンパイラの不思議 - goinger的日記を読んで軽く気になったので -fno-builtin でビルトインなものを消してみたりして考えみました。たどり着いたのは、C言語はファイル別にコンパイルするというだけの理由ではないかというもの。 た…
構造体変数に自分自身のポインタを持たせて、ごにょごにょしてみた。 #include <stdio.h> #include <stdlib.h> struct hoge { struct hoge *self; int i; struct hoge *(*print)(struct hoge *); }; struct hoge *p(struct hoge *v) { printf("%d\n", v->i); v->i += 2; return </stdlib.h></stdio.h>…
ここ数日で http://wikiwiki.jp/aloha/のカウンタが ココサブログのカウンタを越えた。 ココサブログの方はほとんど書いてないので当たり前といえば当たり前。