なんだこれは

はてなダイアリーから移転しました。

C

if にできなくて switch にできること

C

C言語 Advent Calendar 2016を書く人が少ないので5日目に飛びいり参加しました。さて switch 文は if で置き換えられるからいらない子と思われているかもしれませんがif文で実現できない、switch 文というものが実はあります。それはループへの割り込みです…

goto だめなら longjmp 使えばいいじゃない

C

#include <stdio.h> #include <setjmp.h> #define loop do{setjmp(jmp);}while(0) #define goto_loop do{longjmp(jmp,1);}while(0) jmp_buf jmp; int main(void){ int i = 0; loop; i++; printf("%d\n",i); if(i < 10){ goto_loop; } return 0; }真に受けないように。</setjmp.h></stdio.h>

8でわった余りは?

C

以下のような switch 文があった。 foo.bar の型は unsigned char だったはず。 この値は、8でわった余りだから 0から7になる、数学的には。 switch( (foo.bar--)%8){ case 0: x=1 ; break; case 1: x=3 ; break; case 2: x=5 ; break; case 3: x=7 ; break;…

デザインパターンのテンプレートメソッドって with系マクロ + サンク?

モダンC言語プログラミングをパラパラと読んでいたが、デザインパターンというものがでてきた。名前だけは聞いたことがあったんだがどういうものだろう?まずは、テンプレートメソッド。前後に定型処理が必要なコードにつかうのが テンプレートメソッド。リ…

シンプルに Cutter を実行してカバレッジをとる

C Mac

Cutter という単体テストフレームワークがあるけれど、autoconf を駆使するようでよくわからない。というわけで、素で実行してみる。