fc2ブログ

[C言語]メモ

■アクセスするレジスタ幅を意識した宣言
  8bitレジスタ unsigned char
 16bitレジスタ unsigned short
 32bitレジスタ unsigned long

http://www.uquest.co.jp/embedded/learning/lecture28.html

■volatileの意味
 ・最適化するな、の意味。
 ・例えば、
    int i;
    for (i = 0; i < 10; i++) {
    P5DDR = 0x00ff;
    }

  と書いた場合、賢いコンパイラーは、この3行を
    P5DDR = 0x00ff;
  だけに置き換えてしまう。
  意味あって数回Writeするコードでも、コンパイラが「論理的に無駄な部分」を省略するから。

http://questionbox.jp.msn.com/qa2615434.html

■unsigned使う理由
 ・符号付charだと0xffは-1となってしまうから。
 ・0x80以上の値を代入してワーニングやコンパイルエラーを出さずに代入出来るようにする為にunsigned必要。
 ・ビット演算の & や | 、及び、シフト演算 <<や>>を使う場合もunsigned とするのが基本。
 ・例えば、
    signed char a, b;
    a = -1; b = 0;
    if(a == 0xff){b = 1;}else{b = 2;}
  上記の場合は、コンパイラにもよるかもしれないけど、普通はb=2になってしまう。

http://questionbox.jp.msn.com/qa2615434.html
カレンダー
01 | 2024/02 | 03
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード