flagflag  If you want to see English page, please click "English" Button at Left.
Page Top

hoge anchor.png

Page Top

ほげほげ anchor.png

Page Top

環境変数の設定 anchor.png

Page Top

windows7の場合 anchor.png

マイコンコンピュータ右クリックからシステムの詳細設定
詳細設定の下に環境変数(N)...がある
そこで設定

Page Top

DXライブラリの設定 anchor.png

Page Top

Visual studio 2008の場合 anchor.png

「文字セット」の項目を「マルチ バイト文字セットを使用する」に変更を「すべての構成」に適応させる

「構成」

Release
構成プロパティ → C/C++ → 「コード生成」
のランタイム ライブラリの項目を「マルチスレッド(/MT)」に変更

Debug

ランタイムライブラリの項目を「マルチスレッド デバッグ(/MTd)」に変更

Page Top

予約語 anchor.png

Page Top

予約語 anchor.png

void     型の無いことを宣言
char     1バイト・文字型
short     2バイト・単精度整数型
int      4バイト・整数型
long      4バイト・整数型
float     4バイト・単精度浮動小数点型
double    8バイト・倍精度浮動小数点型
auto     自動変数、関数を抜けるとデータは消去
static    静的変数、関数を抜けてもデータが残る
const    書き換え不可、宣言時に格納
signed    符号付変数を指定
unsigned   符号なし変数を指定
extern    異なるファイルから使用する際に宣言
volatile   コンパイラに最適化させない
register   レジスタに割り当て高速化、C++では使用できるが意味が無い
return    関数から抜ける、戻り値を指定できる
goto    指定ラベルへジャンプ
if      条件分岐
else     if文の条件分岐
switch   条件分岐
case    switchでの条件分岐
default   switchでのcaseに当てはまらない条件
break    ブロックから抜ける
for     ループ文(初期化;終了条件;変数更新)
while    ループ文(終了条件)
do     do-while文で使用する、処理の開始
continue  ループ文の先頭に戻る
typedef   型に別名をつける、意味は変わらず
struct    構造体、変数をまとめて宣言するユーザー定義型
enum    列挙型、整数の割り当て
union    共用体、変数をまとめて宣言できるが、アドレスは共通
sizeof   変数のサイズを取得

Page Top

bullet anchor.png

Page Top

bulletの導入 anchor.png

公式から落としてきたbulletのSDKを解凍すると、中にlibというフォルダがあるが中にライブラリファイルは入っていない。
bullet-2.xx → msvc → 2008 (自分の場合) → lib → Debug
となりにreleaseもあるんじゃね(たぶん)
あんまりいじってないから知らん

を指定する

ヘッダーファイルはbullet-2.xx → srcに入っている

Page Top

アラインメント anchor.png

Page Top

構造体に関して anchor.png

たとえば
typedef struct Hoge
{

   int int1;
   double double1;
   char char1;
   double double2;

}Hoge;

があったとして
サイズがいくつになるか
[obara@TandemMirror arainmento]$ ./a.out
24
stHoge 0xbfde0e2c
int1 0xbfde0e2c
double1 0xbfde0e30
char1 0xbfde0e38
double2 0xbfde0e3c

ってな感じになりchar1とdouble2の間に隙間が出来た
これはコンパイラが勝手に境界調整(アラインメント)して適当に詰め物(パディングというらしい)を入れた
CPUによってパディングのやり方が違うらしい

パディングには下手に触ってはいけないらしい

Page Top

malloc calloc realloc anchor.png

Page Top

malloc anchor.png

voidのポインタ返ってくる いじょ

Page Top

calloc anchor.png

voidのポインタが返ってくる んで中のビットが全部0になっているらしい いじょ

Page Top

realloc anchor.png

void realloc(変更したいポインタ,どんくらいヒープするかのサイズ) あんまり頻繁に使わない方がよさげ

頻繁に巨大な領域をreallocで伸ばすと時間もかかりヒープの中につかえない巨大な空き領域がどんどんできてしまうらしい

Page Top

フラグメンテーション anchor.png

てきとーにメモリの確保、開放を繰り返すとメモリが分断されていき使用できない細かい空きブロックができる この現象をフラグメンテーションというらしい

(メモリはいっぱいあるぜ 気にするこたぁねぇw)

Page Top

インクルード!ガーーーードッ!! anchor.png

Page Top

再定義防止、無駄なプリコンパイルを減らす anchor.png

ヘッダーに

#ifndef OBARA_H

#define OBARA_H


#endif と最初と最後に書いて置くだけで再定義防止、とビルド時間を短縮できる

ifndef とは逆にifdefというのももある ifndefとは逆で、ifdefは定義されていればendifまでを実行するらしい

なにやらプリコンパイル時に必要のないコードはコンパイルしないようにしているようだから、ifdefとか書いても速度は変わらないらしい

Page Top

bitを利用したフラグ管理 anchor.png

Page Top

unsignedを使う anchor.png

まず

#define aFlag (1)

#define bFlag (1 << 2)

#define cFlag (1 << 3)
とフラグをどのように使うかマクロ定義や定数で定義しておくとよい
unsigned Flag = 0;//フラグを記録させる変数
unsignedを付けないと何かで右シフトした時、補数の1がシフトしてくるかもしれない
必要な関数は3つ
セット、リセット、チェック
void set(unsigned f)
{

   Flag |= f;

}
void reset(unsigned f)
{

   Flag &= ~f;

}
int check(unsigned f)
{

   return ((Flag & f) == f)? 1 : 0;

}
メモリの節約、可読性の向上
たとえば
if(check(aFlag|bFlag|cFlag))
{
}else
{
}

Page Top

ポインタとconst anchor.png

Page Top

構造体 anchor.png

構造体
typedef struct dororo{

   int hoge;
   int tara;
   int pong;

}
があるとして、 const dororo *a = (dororo*)malloc(sizeof(dororo) * i);
という宣言をしてもメンバに値を代入できる~ dororoはポインタなのでconstがついていたら a=nanntyara みたいにポインタを変更することはできないが、a->hoge=100のような変更はおk 当然ではあるがconstは修飾した変数そのものにだけ有効である

Page Top

javaの場合 anchor.png

javaの場合も同様~ final hoge[5][5] = { {1,2,3,4,5}, {1,2,3,4,5}, {1,2,3,4,5}, {1,2,3,4,5}, {1,2,3,4,5} };
とあるとするとhogeは変更できないが、hoge[]とhoge[][]は弄る事ができる。

Page Top

共用体 anchor.png

Page Top

anchor.png

よくわからん
メモリの節約はできそうだ

Page Top

Lua anchor.png

Page Top

今日からLuaなるスクリプトの勉学に励もうと思いました anchor.png

LuaさんはC言語に組み込む目的でRoberto IerusalimschyさんとLuiz Henrique de FigueiredoさんとWaldemar CelesさんがC言語に組み込む事を目的としたスクリプトとして開発したっぽい
ガベージコレクションはインクリメンタルGCでライセンスはMITらしい

Page Top

luaの使い方 anchor.png

visualstudioのプロパティ→構成プロパティ→c/c++→全般→追加のインクルードディレクトリでluaのなかのincludeの追加 全般→リンカーで追加のライブラリディレクトリへluaのlibをを追加 リンカー→入力の追加の依存ファイルへlua5.1.libを追加する

するとvisualstudioでc++にluaを使えるようになる

Page Top

C++ anchor.png

Page Top

anchor.png

Page Top

クソゲ anchor.png

Page Top

フレーム anchor.png

毎回呼ぶようなクラスにstaticなフレームを数えるunsignedを持たせておけばいいんじゃないか getしてフレームを数える

Page Top

MSVS anchor.png

Page Top

デバッグモード anchor.png

_DEBUGが定義される ifndefで囲っておけば、debugビルド時のみの処理を書ける


トップ   凍結 差分 バックアップ 複製 名前変更 リロード   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom
Counter: 1631, today: 1, yesterday: 0
最終更新: 2012-09-16 (日) 16:12:45 (JST) (4238d) by s10037

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 4月翌月
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 30
<今日>

オンライン状況

95 人のユーザが現在オンラインです。 (7 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 95

もっと...

アクセスカウンタ

今日 : 7837783778377837
昨日 : 9457945794579457
総計 : 2333479423334794233347942333479423334794233347942333479423334794
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com