宗教戦争
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGハンガリアン記法とか、goto&多重継承の悪用とか。
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGわざわざ flame専用スレに書く香具師がいないだけであって。。
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGhttp://corn.2ch.net/news5/
0120デフォルトの名無しさん
NGNGRuby vs その他の糞言語
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄ ̄\ミiiiiiヽ \ _-=≡///:: ;; ''ヽ丶/ヾ ヾ .,! !,,!_´,,//_/ /=″″ヾヾゞ″ヽ
\iiiiiiiゞ ─ | / '' ~ ヾ/=/`''~~ /彡 ノ 》 ヽ
\iiヽ ── | / |=.| 二 ..| ヽ
━━━'/ ヽ━━━ ヽミヽ _,-=- _,-= ヽ| | ヽ| ── / 《 i
__,.:: :: __ ヽiiiii ノ_ ヽ |≡ , 、 || ヽ ,, 、ー ̄ ∠;ヾ ∠;ミ;ミミ ヾ ,j
::: |iiiii ヽ .|≡_≡=-、___, - -=≡=_ / / \ ( ノ)-( \__) \ヽ ,=ヽ
|iii| ( о ) | || ,ー● | | ●ー |┤ ./ | / ii
( ● ● ) .|iiii| /_,,,,;;iiiiiiii;;;,,_ヽ |ヽ二_,( )\_二/ | ( 。つ\ |./ ヽ ; ≒/б,リ
》━━━━《 |iiiii|///;;;;───、ヾ. | /( )ヽ | / 丶 ( __ j \ ヾ , 彳
》 / ̄ ̄\ 《 |iiiiiiii|:::///\__/ヾヽ| / ⌒`´⌒ | /____」 ,/,,ii,,,ミ;; ; / i
《《 \ ̄ ̄/ 》》 |iiiiiiiiiii|::// ;; ; ;; 》::::::| / | |/ / レ;こノ ij\ \\ / ,i
》》  ̄ ̄ 《《 》》》》》iiiii|::《 ;; ;; ;》 ;;》:( |_/ヽ_'\_/ | | |__/ ヽ┯' ij \ | \
《《《《《《《《《》》》》》》》》》》》》》》iii|/ 》 ;;》 》 ;;ミ ヽ 、\_ ̄  ̄/ヽ ヽ -─ ヽiL._ __、_,/
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG大いに藁た
0126棄教者 ◆witdLTi2
NGNG右端は誰?
0127デフォルトの名無しさん
NGNGシャクティじゃね?
0128デフォルトの名無しさん
NGNG危険人物です。
0129棄教者 ◆witdLTi2
NGNG0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG原著よんで日本ではヌルというが
本当はナルと言うんだと豪語していた記憶があるが
俺はヌルで炒ってるとりあえず
0133デフォルトの名無しさん
NGNG0134まつもとひろゆき
NGNG0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGUNIX板いけ
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG{
}
でしょ?
{
}
って(プププ
0144デフォルトの名無しさん
NGNGCFAQ
http://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0145デフォルトの名無しさん
NGNG氏ね
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG個人的には、Adaは最悪。
識別子をすべて大文字で始めなきゃいけないので小指がつりそうになった。
0148デフォルトの名無しさん
NGNG普段 3. int main()
必要があれば 6. int main(int argc, char *argv[])
int main(void) は馬鹿らしい
int i; を auto int i; と書いているようなもの
(void) printf("Hello, world\n") はもっと馬鹿らしい
envp は、環境変数を操作する必要なんて普通発生しないし使ったこと無い
getenv() で十分
>>38
それは最後のセミコロンで警告どころかエラーになる
>>41
void *ptr;
>>44
const void *ptr;
ただし
char const * const str;
>>60
#define _
for(;_;)
>>66
3. boost::shared_ptr に最近したところ
>>103
{ ... } よりも begin ... end の方が FOOL!
>>143
同意
0149デフォルトの名無しさん
NGNG> >>38
> それは最後のセミコロンで警告どころかエラーになる
なんで?
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGなんねーな。
それよりも return がない事で警告が出る。
0152デフォルトの名無しさん
NGNG大文字・小文字を区別しないFortranが良い
0153デフォルトの名無しさん
NGNGASM 使え。
0154デフォルトの名無しさん
NGNGいや、N88-BASIC
0155デフォルトの名無しさん
NGNGHSP は?
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGひょっとして糞スレですか?
0158デフォルトの名無しさん
NGNGそうです。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNGAda は大文字/小文字の区別しないでしょ。
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGCFAQ
http://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0164デフォルトの名無しさん
NGNG,. -───-: 、
/::::::::::::::::::::::::::::::::\
/ '':::::::::::::::::::::::::::::::''''' ヽ
!::::::::::ィ::ハ:::;::::::::::::::::::::::::::!
i::|:::i::/l/ i;::ト、:、:::i:::::::::::::::i
|::i/レ'-i'' 'ヽi-ヾ,ヽ!:::::::::::::l
|::ハ -‐- -─- i::::::::::::::l
|::::::l| | | | |::::::::::::::!
|::::::ヽ | r---、! l,.!::::::::::::::l
l::::::::::::`;'-'=,‐,='r''i~!:::::::::::::::|
!:::::::l、::r'"´'. ' l ' i::::::::iヽ:::l
i:l、:::|./、_____,l::::;l:/‐'ヽ!
'!ヽ;i'>l____,.//-‐'''"ヽ
!/ |.VVVVVVVV.lV\!. i
| | | l
0165デフォルトの名無しさん
NGNGつか、張るなよ。
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNGC爺はスレッドの分別もつけられねえのかヴォケが
じゃなくてなんで俺がその画像を既に持っているかが謎だ。
グロ画像サイトで落としたんだっけか・・・
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG俺は
if ( a == b ) {
for(;;) {
}
}
というK&Rスタイル。
これ以外のソースが書いてあると条件反射的に修正してしまう。
特に
if (a==b){
の場合、
if (a==b) {
と空白を強制的につけて嫌がられてます。
0171デフォルトの名無しさん
NGNG俺もほとんど一緒だがifのあとに空白があると気持ち悪い
if(a == b) {
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNGwhile(true)だと評価が入るので、for(;;)のほうが速いらしい。
先日、組み込み屋さんがどこかのMLで書いていた。
0174デフォルトの名無しさん
NGNGPascal, Delphi, C#,,etc
はすべて最悪、と。
Ctrlは左下にある、と。
0175デフォルトの名無しさん
NGNG{
for(;;)
{
}
}
ですが何か?
0176デフォルトの名無しさん
NGNG{
for(; ; )
{
}
}
0177デフォルトの名無しさん
NGNGとりあえずindent通す。
0178デフォルトの名無しさん
NGNGif や while の後は空白あり。
開くブレーズは改行せずに () に続けて。
int main(int argc, char * argv[]){
if (a == b) {
for (;;) {
}
}
return 0;
}
0180デフォルトの名無しさん
NGNGint* pi; /* C++ */
と単純に分けて使っているのは正しいですか?
0182デフォルトの名無しさん
NGNGint* p1, p2; /* C++ */
(´-`) ??
0183デフォルトの名無しさん
NGNGそれがあるからちょっと躊躇うんだけど
おれはね、int型のポインタとintとは全く
別物だと思うから同じところで宣言したりは
しないようにしてる。
実体、ポインタ、参照。これらが仮にメモリ上の
全く同じものをさすこちになるとしても、
やっぱりおれの中の意味的にはまったく別物。
それらを同じような場所で宣言するとしても
やっぱり三つに分けてる。
int i;
int* p_i;
int& ref_i=*p_i;
ダサイって言われるんだろうなあ(変数名は便宜的なものね)。
もっと綺麗な解釈と書き方を教えてください。
0184デフォルトの名無しさん
NGNGint i=3;
int* pi=&i;
int& refi=*pi;
やっぱりダサイですかねえ。
0185デフォルトの名無しさん
NGNGそういう話じゃない。
int* p1, p2; と書いた時、「int* 型の変数 p1, p2」 に見えないかという
事。
それと、ポインタ型を 2 つ以上続けて宣言する場合、
int* p1, *p2;
不恰好だと思わないの?
あと、182 の前者の何が C で、後者の何が C++ なんだ?
どちらも C であり C++ だろう。
0186デフォルトの名無しさん
NGNG>int* p1, *p2;
>不恰好だと思わないの?
同じ型のポインタを二つ宣言するときは、
int *p, *p2;
と書きます。
それ以外のときは型名に*や&をくっつけてると思います。
>182 の前者の何が C で、後者の何が C++ なんだ?
これは自分のコーディングスタイルです。
gccユーザーなので両者はサフィックスに従い
はっきりと分けてます。
0187デフォルトの名無しさん
NGNG> 同じ型のポインタを二つ宣言するときは、
> int *p, *p2;
> と書きます。
int* p;
int *p1, *p2;
統一性無いと思わないの?
> それ以外のときは型名に*や&をくっつけてると思います。
思いますって・・・
> これは自分のコーディングスタイルです。
根拠は特に無いという事?
それなら、「182 の前者の何が C で、後者の何が C++」 の説明にはならない。
> gccユーザーなので両者はサフィックスに従い
> はっきりと分けてます。
使うコンパイラによりスタイルを変えるという事?
何か意味あるの?
あと、「サフィックスに従い」 の意味がわからない。
0188デフォルトの名無しさん
NGNG>> これは自分のコーディングスタイルです。
>根拠は特に無いという事?
ありません。それではあなたには何か根拠があるんでしょうか?
私のやり方に統一性がないとおっしゃるなら具体的に根拠を述べて
みてはどうですか?
ちなみに私は同じ型の変数でも別途一行設けて宣言することの方が
多いです。これはコメントを書きやすくするためでもあります。
あと182は私ではないですし、そこに書かれている書き方は
私もしていません。
>使うコンパイラによりスタイルを変えるという事?
>何か意味あるの?
>あと、「サフィックスに従い」 の意味がわからない。
要はあるファイルをCのものC++のものと分けているということです。
拡張子が.ccやcppのファイルからはなるべくC風の書き方(根拠のない
自分流のものではありますが)をしないようにしています。
コンパイラ云々は関係ありません。
0189デフォルトの名無しさん
NGNG昔はそう書いてたけど、一度viを使ってからは関数頭の開きブレースだけは行
を分けるようになった。
0190デフォルトの名無しさん
NGNG> ちなみに私は同じ型の変数でも別途一行設けて宣言することの方が
> 多いです。これはコメントを書きやすくするためでもあります。
これはいいんじゃない?
漏れはまとめて書く派だけど、分けて書いてる人は多いと思うよ。
「int 型と int * 型が別の型」 というのは立派な根拠だ。
> あと182は私ではないですし、そこに書かれている書き方は
> 私もしていません。
あれ 182 じゃなくて 180 の間違いだ。謝罪。
ともあれ、「180 の前者の何が C で、後者の何が C++」 根拠が呈示されない
と、どうして int *pi; を C 風として、int* pi; を C++ 風として扱う事に
したのかわからないと、その使い分けが正しいのか判断できないから、180 の
質問には誰も答えられない。
> 要はあるファイルをCのものC++のものと分けているということです。
そういう事なら 「ファイル名のサフィックス」 と書いた方が通じやすいと思う。
> 拡張子が.ccやcppのファイルからはなるべくC風の書き方(根拠のない
> 自分流のものではありますが)をしないようにしています。
これは絶対という事はないけど、そんな事する意味は無いと漏れは思うよ。
というか、訊きたいんだけど、それによってどんな意味を持たせたいの?
ソース見ただけで C か C++ か判断とたいというにしても、C++ ソースなら
C と非互換のヘッダーやキーワードや構文を使ってて C コンパイラじゃエラーに
なると思うし、C 互換機能しか使っていないなら、それこそ C++ 風で書く意味が
無いよ。
0191180
NGNG>「180 の前者の何が C で、後者の何が C++」 根拠が呈示されない
根拠を示せと言われても理論的な考えなどは実は何もないのですが、
今まで読んできた多くのGPLライセンスのソースがそうなっていた
ということだけが根拠となるのでしょうか。それでいてコーディング
規約などは読んだことがないというヘタレなので間違っているかもしれません。
Cに関して読んだものはLinux、gcc、binutils等です。BSDLのCコードも
基本的には今回のケースに限っていえば同じだと思っています。
C++はgccに含まれているSTLを参考にしています。
マイクロソフトのsscliやboostなどは両側に空白が入るものも含めた
3種類が割と適当に使われていました。
少し考えてみたのですが、
型名 {,*,&} 変数名
という書き方が出てくるのは思いつく限りでは
1. 変数宣言
2. 関数定義
3. typedef
の3通りあるわけですが、
2の関数宣言に関しては、一つ一つのパラメータに対して
型を指定する必要があるのでこれはいいとして、
1,3に関しては個人的には構文として疑問です。
Cに関しての詳細には疎いので当然間違っているとは思います。
その上での話になりますが、
typedef int* pint, inttmp;
のような書き方の場合にはint2はint型になるわけですが、これは
直感的にはおかしくないでしょうか?
個人的には
typedef int* (pint1,pint2); /*構文は間違っています*/
のように解釈されて欲しいわけです。
歴史的にどうして現状のようなものに至ったのか知りたいところでは
あります。
0192180
NGNG型名 {,*,&} シンボル名
に訂正します。
0193デフォルトの名無しさん
NGNG> 根拠を示せと言われても理論的な考えなどは実は何もないのですが、
じゃあ申し訳無いけど 180 が正しいかどうかは判断してあげられない。
あえて回答するなら 「意味不明」。
> 今まで読んできた多くのGPLライセンスのソースがそうなっていた
GPL なソースの場合、
・ 1 本のソースが必ずしも 1 人で作られているとは限らない
・ 複数人による場合それぞれのスタイルが統一されているとは限らない
という点は留意した方がいい。
先人のした事を鵜呑みにするより、自分なりの理由付けをした方が、
自信を持てるスタイルを確立しやすいと思うよ。
> 1,3に関しては個人的には構文として疑問です。
漏れも、ポインタや配列の定義文については疑問だ。
char[16] へのポインタを返す関数なんか char *func(void)[16] だしな。
まあ、そんなコードにする前に typedef すればいいけど、構文解析する
上ではこの文法が簡潔になるようだ。
> typedef int* pint, inttmp;
> のような書き方の場合にはint2はint型になるわけですが、これは
> 直感的にはおかしくないでしょうか?
これも構文解釈を簡潔にするための都合で、歴史はあまり関係無い。
C/C++ 規格上では、typedef は宣言の extern とか auto とか static や
なんかと全く一緒の扱いなんだよ。
typedef をそのまま extern やらに置き換えても意味は通じるだろう。
0194193
NGNG> 1. 変数宣言
> 2. 関数定義
> 3. typedef
この 3 つは、規格では 「宣言文」 として、全く同一に扱われてる。
だから、区別する意味は無い。
0195デフォルトの名無しさん
NGNG>C/C++ 規格上では、typedef は宣言の extern とか auto とか static や
>なんかと全く一緒の扱い
>この 3 つは、規格では 「宣言文」 として、全く同一に扱われてる
んー、いろいろと勉強になります。
数人しか見ていないであろうこのスレにおいてのマジレス感謝です。
Cの構文ではあと、関数ポインタの宣言もなんだかおかしい気がしてますが
どうでしょうか?
typedef void(*)(void) funcptr;
void(*)(void) funcptr = &func;
こういった形の方がよかったような・・・ただしこれだと何か問題があったのかも
しれないし、現在の形の方が自然に理解できるという解釈もあるかも
しれません。
もっと両言語について勉強して出直してきます。ありがとうございました。
>一度viを使ってからは関数頭の開きブレースだけは行を分けるように
vi 使ったことないからわからないんだけど他のエディタではどうですか?
vi じゃなきゃ行を分ける意味はないかな?
0197デフォルトの名無しさん
NGNG> >>191
> > 根拠を示せと言われても理論的な考えなどは実は何もないのですが、
>
> じゃあ申し訳無いけど 180 が正しいかどうかは判断してあげられない。
> あえて回答するなら 「意味不明」。
正しいかどうかよりも、ただの慣習。
int *p; /* K&Rはこう書いてあった */
int* p; /* ARMはこう書いてあった */
好きなようにすればヨロシ。
0198189
NGNGviだと[[と]]で先頭の開きブレースにとぶんだよ。
つまり、関数の頭で行を分けとけば関数単位での移動が簡単なわけ。
あとは、K&Rスタイルで書くときは普通分けるね。
じゃあ他のエディタでは機能的には分ける意味はないのね。
慣れの問題だろうけど { を分けるのはどうも気持ち悪いのよ。
でも人がやってるとマネしてみたくなったりw
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG漏れもそう思う
0204デフォルトの名無しさん
NGNGdefault もな。
0205189
NGNG>>199
いや、EmacsでもC-M-aは同じように関数の頭を先頭の開きブレースで探すから。
> あとは、K&Rスタイルで書くときは普通分けるね。
実はこっちも結構大きい。
>>202-204
caseは他の半分のインデントにしとる。
if (foo()) {
bar();
}
switch (hoge()) {
case 0:
hage();
break;
case 1:
voke();
break;
}
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGbar();の頭を半分全角空白に置換し損ねた。
0208デフォルトの名無しさん
NGNG今時、横幅 80 桁でソース眺める香具師が居るのか?
0209デフォルトの名無しさん
NGNG横より縦の長さが重要だな
1024x768じゃ辛い
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNGインデント8桁はちょっと深いな。
linux-styleはそうだけど。
0212208
NGNGTab 1 つと言った。
なお、Tab 幅は 4。
0213デフォルトの名無しさん
NGNG貧乏で液晶派なんでSXGAが精一杯
0214デフォルトの名無しさん
NGNG変則的なTab幅を使われると見るとき困るんだよな。
0215デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています