C言語

定数定義にenumを使いたいが躊躇っている方へ

マクロを使って見た目を整えれば何とか。 #define DEFINE_CONST_INT(name,val) enum{name=val} void test1( void ) { DEFINE_CONST_INT(foo,3); } こっちの方がまともかな? #define DEFINE_CONST_INT(def) enum{def} void test2( void ) { DEFINE_CONST_INT…

組み込みC言語における定数の作り方について(後半)

さて、前回の続きです。 #define vs const ここからは、定義の方法によってどういうメリット・デメリットがあるかをまとめてみます。 まずは#defineとconstです。 #defineとconstを比べるという状況は、つまり定数を定義したいときです。 原則としては、やは…

組み込みC言語における定数の作り方について(前半)

C言語の定数の作り方 組み込みC言語を書いていると、定数をどう作ろうかと迷うことがあります。最新のC言語では、定数の作り方は3つある*1。えっ?2つじゃないの?僕もそう思っていましたが、以下のサイトでは3つと紹介されています。言われてみれば、まぁ確…

PIC用nop関数

#define JOIN(x, y) x ## y #define nop() asm("nop") #define NOP1 nop() #define NOP2 NOP1;nop() #define NOP3 NOP2;nop() /* 中略 */ #define NOP100 NOP99;nop() #define NOP(n) JOIN(NOP, n) NOP(10); /* これでnop10回分になる */ このコードの良いと…