More Related Content
PDF
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行 PDF
PDF
PPT
PDF
PPTX
PPTX
PDF
C#coding guideline その2_20130325 Similar to プログラミングで言いたいこと聞きたいこと集
PDF
Javaセキュアコーディングセミナー東京第2回講義 PDF
PDF
PDF
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg... PDF
Unity2015_No10_~UGUI&Audio~ PDF
PDF
KEY
PDF
PDF
PDF
PPTX
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„ PDF
PDF
PDF
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„ PPTX
PDF
PPTX
プログラミングで言いたいこと聞きたいこと集
- 1.
- 2.
- 3.
- 4.
STATIC_ASSERT(2) // 定義例 template < bool > struct static_assert_{ enum { okay = 1 }; }; template <> struct static_assert_< false > {}; #define JOIN(a, b) JOIN_(a, b) #define JOIN_(a, b) a ## b #define STATIC_ASSERT(expr) ¥ typedef int JOIN(diagnostics_, __LINE__) ¥ [static_assert_<!!(expr)>::okay] - 5.
配列の参照渡し (1) 問. 静的サイズの配列を関数の引数として渡す時、どれが一番適切でしょうか? 1. void SetArray( int * array ); 2. void SetArray( int array[5] ); 3. void SetArray( int (&array)[5]); - 6.
配列の参照渡し (2) 1.void SetArray( int * array ); -> 配列じゃなくても渡せてしまう。 2. void SetArray( int array[5] ); -> サイズ 5 じゃない配列でも渡せてしまう。 3. void SetArray( int (&array)[5]); -> サイズ 5 の配列しか渡せない。 正解 : 3 - 7.
- 8.
MASTER_CONST 修飾子 マスタービルド時には定数だが、デバッグ時は調整のため変数にしたいものがある。 MASTER_CONST を定義しょう。 #if defined (_DEBUG) #define MASTER_CONST #else #define MASTER_CONST const #endif static MASTER_CONST float s_GameParam = 0.0f; #if defined (_DEBUG) if( Pad::IsOn( BUTTON_UP ) ){ s_GameParam += 1.0f; } #endif - 9.
Addr 型 ポインタ型を数値変換する場合は、Addr 型を定義して使いましょう。 Uint32 addr = reinterpret_cast < Uint32 >(ptr); // No Addr addr = reinterpret_cast < Addr >(ptr); // Yes ポインタのサイズが 32bit である保証はありません。 - 10.
float 型について 比較する時は誤差を考慮したマクロを定義して使おう。// f0 == f1 #define IS_EQUAL_F32( f0 , f1) ¥ ((f1) - EPSILON) <= (f0)) && ((f0) <= (f1)+EPSILON) // f0 > f1 #define IS_MORETHAN_F32( f0 , f1 ) ((f0) > (f1)+EPSILON) // f0 < f1 #define IS_LESSTHAN_F32( f0 , f1 ) ((f0) < (f1)-EPSILON) - 11.
関数の入力、出力引数 ( 示し方) 1 . コメントで示している。 -> 関数定義を見ただけでは分からない。 2 . 引数名で示す。 bool GetParam( int * out_Param ( or outParam ) ); -> 命名規則にポリシーを持っている人には相性が悪い恐れあり。 3 . 修飾子を付ける bool GetParam( _OUT int * param ); 個人的には 3 を推奨したいがどうでしょう? - 12.
関数の入力、出力引数 ( 範囲) 1.入力、出力、入出力引数全てに示す。 Bool GetParam( _OUT int * dst , _IN_OUT int * param0 , _IN int param1 ); 2.出力、入出力引数のみ示す。 Bool GetParam( _OUT int * dst , _IN_OUT int * param0 , int param1 ); 入力引数はデフォルトなので、 示すのは冗長と感じるがどうだろうか?(2推奨) - 13.
- 14.
関数毎に author コメントを付けるべき グループプログラミングをする場合、関数毎に文責者コメントを書いている人は少ない。引き継ぎや質問に支障がでるので書く癖を!! /*! * ホゲホゲします。 * @authror Miyake Shunsuke */ void MogeClass::DoHogeHoge() { / / ホゲホゲ } - 15.
入力( Pad,Keyboard )クラスにはRease と Debug 用 API を用意すべし。 アプリケーション側で #if 〜 #endif で分岐してるだけでは残ってしまう可能性がある。根元でも対応すべし。 // No #if !define (_MANTER) // もしも _MASTER のスペルを間違ってたら・・・ if ( Pad::IsPress( BUTTON_A ) ){ m_Hp = 100000; // Hp を回復 ( デバッグ用 ) } #endif // Yes if ( DebugPad::IsPress( BUTTON_A ) ){ m_Hp = 10000; // Hp を回復 ( デバッグ用 ) } - 16.