C


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

C言語


n進数

%b  2進数
%o  8進数
%d 10進数
%x 16進数(小文字)
%X 16進数(大文字)
フラグに#で0xやxをつけてくれる(ex,%#b)


引数のエラー

C++Builderだと atan(1) は通る
VisualC++だと atan(1.0) じゃないと通らない(オーバーロードなんたらってエラー
引数の型はめんどくさがらずにちゃんとそろえたほうが無難

マクロ定義

#define マクロ定義
#if 定義値が真ならば
#ifdef 定義済ならば
#ifndef 未定義ならば
#else 真でなく偽ならば(定義されていないときも偽)
#endif #if,#ifdef,#ifndefの定義域
#undef 定義解除

例えば1 各ifの違い

#define CONDITION 1 	//のとき
#if CONDITION		//真
  (実行される)
#endif
#ifdef CONDITION		//真
  (実行される)
#endif
#ifndef CONDITION		//偽
  (実行されない)
#endif

例えば2 無限ループ

//#define I_LOVE_WHILE
#ifdef I_LOVE_WHILE
#define loop while(1)
#define which "while"
#else
#define loop for(;;)
#define which "for"
#endif

ヘッダファイル

ヘッダファイルでは2重呼び出し禁止のために
#ifndef __MY_HEADER__
#define __MY_HEADER__

  ヘッダー中身

#endif

static

staticで変数を宣言しとけば何度も呼び出す関数でも変数が初期化されない
PWMとか使うときこれを使えば無駄にグローバル変数を増やさなくてもおk

コメントアウトのわざ

コメントアウトするとき//と/*~*/の強弱関係を利用して//*/を作る。
対象部分を//*/で囲んでおく

コメントアウトしたくない コメントアウトしたい
//*/   
↑//が優先なので1行コメントアウト          

コメントアウトされない

↓//が優先なので1行コメントアウト
//*/
/*/
↑/*なのでそれ以降*/が来るまで全てコメントアウト   

コメントアウトされる

↓/*が効いているので//はコメントアウトされる
//*/   

モジュールの試作とかテストとか
複数行のコメントアウトと取り消しが先頭の/だけでできるのでうまく使えば便利!
(IDEで出来るとか言わない!
デバック用ならネスト防止でマクロ使うか
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル