HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1101
drksugiコーディングスタイルについてのあれこれ3解決


drksugi

リンク

2014/11/1(Sat) 21:48:21|NO.65851

HSPではコーディングスタイルに関しての規定はないので、皆さんはそれぞれ自分好みの
コーディングスタイルで書いてらっしゃると思います。

皆さんはどのようなコーディングスタイルでHSPのソースコードを書いていますか?

例えば私の場合、
・変数名はハンガリアン記法を採用する(Win32 APIと親和性を高めるためでもある)
・変数名はローワーキャメルケースで書く
論理型ならb、整数ならnやlやui、浮動小数ならfやd、ポインタならpやlp、文字列型なら
str、ハンドル型ならh, DWORD型ならdwなどと決めています。
また、先頭以外の単語の1文字目を大文字、それ以外を小文字にして連結した
ローワーキャメルケースで変数名を考えることにしています。

bIsTextFileEditedとか、dwWindowCreationMiscFlagsとか、hMainWindowとか,
strDestinationとか, nConfigurationStringLengthみたいに単語は絶対省略しません。

・関数名, 命令やラベル名はアッパーキャメルケースで書きます
GetWindowState関数とか、*MainLoop(ラベル)とか、SetMainStatusbarStringとか、
CopyFromJsonFileDataToXmlFileOrCsvFileみたいな感じです。
これも単語を絶対省略しません。

・モジュール名は先頭にmod_を付ける
mod_ApplicationManagerとか, mod_RichTextEditControlみたいな感じ

・if文, while文などのかっこ
if (condition) {
}
とか
while (condition) {
}
みたいな感じにして、1行しかなくても必ず括弧で挟む。波括弧は独立した行には書かない。

・インデントはタブで行い4文字分とする

みなさんはどのようなコーディングスタイルですか?
いいのがあったら参考にしたいと思っています。
HSPにあまり関係なさそうですがよろしく



この記事に返信する


skyblue

リンク

2014/11/2(Sun) 13:17:37|NO.65857

>変数名はハンガリアン記法を採用する(Win32 APIと親和性を高めるためでもある)
最近はMicrosoft自身さえ推奨していないって言う話を聞いたことがあります。
変数や関数の使用用途さえわかれば適当な名前をつけたり
インデントとかをしたりしています。
ハンガリアン記法って意外と知られていなかったりする。



KOMARI

リンク

2014/11/2(Sun) 13:23:39|NO.65859

こんにちは(・ω・)
実は私も似たようなスレを立てたことがあります。

#deffunc Modname_Func //deffuncやdefcfuncは先頭大文字 "_"区切りで先頭にモジュール名をつける
・関数名の一例
 Modname_Get(Set)〜 //変数の中身を取得したり設定する関数
 Modname_Is〜 //〜な状態かどうかを取得
 Modname_Create(Release)〜 //生成と削除

#define DEFINE 1 //defineやconstは全部大文字
ただし、
#define global ctype IsCharaConditionPoison(%1) ((Chara_GetCharaParam(CP_COND,%1)&CC_POISON)>0)
こんな感じの使い方をする場合は関数とか命令っぽく書きます。

dim var,1 //変数名は全部小文字 型によって名前は変えてない・・・。
*label //ラベルは全部小文字 ラベルなんてめったに使わないケドネ。
if () //必ず括弧をつける。:を使う場合はreturn 0等後ろが短いときのみ
((a==1)&&(b==0)) //条件式の等号は==を使う。ビット演算でない場合は&でなく&&とかく。
コメントアウトは、//は説明文に使い、;は一時的にその行を取り除きたいときに使う。

インデントはタブで半角4文字 #module,#ifdef,#deffunc,if,switch,case など
それと変数に対しての定義を書くときにインデントしたり。
たとえばこんな感じ。(アニメのヘッダファイルから抜粋)

//dim animebreak #enum global AB_STAY = 0 #enum global AB_BREAK //dim animeparam AnimeParam(Index) #enum global AP_OFF = 0 //アニメ中でない #enum global AP_NULL //ヌルアニメ
参考になったら幸いです。



cats

リンク

2014/11/3(Mon) 21:35:06|NO.65906

コメントは

/*---------------------------------------- Explain Some Blocks ----------------------------------------*/ hogehoge hogehoge // Explain a Block Of Some Instruction hoge hoge hoge ; Explain In a Line
のようにして使い分けています。
変数名については、3〜10文字程度に抑えるようにしています。
あと tmp_str , tmp_int , tmp_arr などをダミーの変数等に使用しています。
少し前は

if ( foo == hoge ) { hogehoge }
という風に括弧でくくっていましたが、最近はpythonの影響か括弧をはずしています。
論理演算子等はKOMARIさんと同じく条件文のときと論理演算のときで使い分けます。



ONION software Copyright 1997-2023(c) All rights reserved.