忍者ブログ

神戸電子専門学校ゲームソフト学科の生徒が運営するGESのブログです。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

就職活動向けプログラミングTips Part1

久しぶりの更新です。
加藤(ぱぱ)です。
 
これから、新2年生に向けての就職活動用のプログラミングTipsを定期的に更新したいと思います。
 
さて、これから企業の人見ていただく機会が出てくるわけですが、ソースも当然見られることがあります。
例えば、
どんなにゲームの出来が良くてもソースでアウトっ!!
となる場合や。
ゲームはいまいちだけどソースがきれい!!
 
というパターンが発生します。(私は多分後者、両方できていると最強!!)
 
ではソースがきれいとは?
 
コメントが書いてある?インデントがそろっている?
 
それだけではないプログラミングTipsを紹介していこうと思います。
ちなみにこの内容はEffectiveC++の内容を元にやっていこうと思います。

拍手[0回]


さて、みなさん。
自分のソースを見直してみると
 
#define ENEMY_MAX 10
 
みたいなのが沢山あると思います。
これはいったい何ですか?
そう、マクロです。
 
マクロとはコンパイル時にソースの置換をしてくれる便利なものですよね(^-^)
 
でも、企業の人からするとこれは良くない使用の方法のようです。
それはなぜか?
ずばり、エラーの発見がしにくいからです。(ほんとはそれだけじゃないけどね)
このENEMY_MAXは一見文字列のようですが、実はただの定数。
コンパイラにしてみれば、マジックナンバーなのです。
 
その証拠にVisualStudioでF9をつかって
struct Enemy enemy[ ENEMY_MAX ]
のような行にブレークポイントを設定して実行してみましょう。
 
止まりますよね?
そこでENEMY_MAXにカーソルを合わせてみましょう。
何も出ませんね?
 
それはマクロが定数だからです。
 
では、どうすればいいのか?
マクロではなくconst定数を使いましょう。
どのように使うかというと、
 
const int Enemy_Max = 10 ;
 
これだけです。
こうして先ほどと同じように
struct Enemy enemy[Enemy_Max ]
として見ると、おおっ、今度は変数の中身が表示されてますね。
 
普段自分しか見ないソースだとマクロでいいじゃないかと思うかもしれませんが、これが人が書いたソースだとどうですか?
 
マジックナンバーだらけだと読む気がしませんよね?
 
さらに、
 
const int Enemy_Max = 10 ;          // 敵の総数
 
みたいにコメントも入っているとなお良いと思いますよ
以上パパのプログラミングTipsを講座でしたo(^-^)o

PR

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

無題

  • by 前GES副部長?
  • 2011/03/22(Tue)23:52
  • Edit
ちなみに static をつけると、なおいいかもしれません。
コンパイルの時点で、定数として展開されるので、
遅くない!
テーブルとか作るのによく使われますが。。。

const だけでも、展開されるならごめんなさい。
わても詳しくないのじゃー。

どなたか調べてコメントいただけるとうれしいです!

無題

  • by 前GES副部長?
  • 2011/03/23(Wed)00:55
  • Edit
ちなみに static をつけると、なおいいかもしれません。
コンパイルの時点で、定数として展開されるので、
遅くない!
テーブルとか作るのによく使われますが。。。

const だけでも、展開されるならごめんなさい。
わても詳しくないのじゃー。

どなたか調べてコメントいただけるとうれしいです!

無題

  • by 前GES副部長?
  • 2011/03/23(Wed)02:16
  • Edit
2回も同じのをすみません…
コンパイル時ではなく、実行時だった気もしてきた。

ちょっと調べてみたほうがいいかも。

TRACKBACK

Trackback URL:

ブログ内検索

最新コメント

[01/29 人面犬]
[10/01 8ch]
[09/12 uncle]
[09/10 某卒業生]
[06/07 uncle]

カレンダー

10 2024/11 12
S M T W T F S
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

テスト

Copyright ©  -- GESブログ --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]