こういう書き方ってどうよ?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGそんな思いをこのスレにぶつけましょ
まず私からですね
if (!stricmp(msg, "hello"))
if (stricmp(msg, "hello") == 0)
上と下のどっちがカッコイイ書き方なんですかねぇ?
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGなわけ無いので
============終了============
0006デフォルトの名無しさん
NGNG結果が同じだと思っているので終了。
0007sage
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGどこか違うのか? といいつつ終了。
0010デフォルトの名無しさん
NGNGなんじゃこりゃ?
============終了============
0011デフォルトの名無しさん
NGNG============終了============
00126
NGNGうーん。作られるコードが違うんだよ。
って、みんな知らないの? まいった。
まあ、最近のコンパイラは最適化しちゃうからなぁ。
A - if (!stricmp(msg, "hello"))
B - if (stricmp(msg, "hello") == 0)
Aの方が Bより「早く動く」コードを作る場合があるのさ。
アセンブラの知識があればわかるよ。
0013デフォルトの名無しさん
NGNGおまえばかだろう
stricmp関数の処理速度が上がるのなら意味があるけど
その戻り値を処理する部分がちょっと早くなっても
何の意味もないんだよ
00146
NGNGがーん。ほんとにみんな知らないのか!?
ま、10年以上前の話の事だからなぁ。
日本が初めて"C"言語を知った時、その実体を洋書からしか
情報が得られない時代。
その時はC言語がめちゃくちゃ遅かった時代なんだよ。ま、みんな
アセンブラ使ってたからな。
で、最適化なんてほとんど無いから、細かい記述で高速化を
計ったのさ。
しかし、ホントにみんな知らないンだな。
戻り値の判定部分だけでも10倍ぐらい早く出来たのさ。
やれやれだよーん。2chレベル低すぎ。
0015デフォルトの名無しさん
NGNGこの前、制御系のコンパイラで、
return 0 ;
return (0) ;
で結果が違ってぶっとんだ
0016デフォルトの名無しさん
NGNGまぁ >>6 さんがこれだけ言うからには違うんだろうなぁ
forループなんかで i++ を ++i って書きますか?
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG他にも
unsigned int i;
unsigned short j;
for(i=0;i<1000;i++){
}
for(j=0;j<1000;j++){
}
jのループのほうが実行命令が長くなる場合がある
0020デフォルトの名無しさん
NGNGjava version "1.3.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_02)
Java HotSpot(TM) Client VM (build 1.3.0_02, mixed mode)
/* a.java */
class a
{
void b()
{
for( int i = 0; i <= 100; i++ );
}
void c()
{
for( int i = 100; i >= 0; i-- );
}
}
% javac -O a.java
% javap -c a
Method a()
0 aload_0
1 invokespecial #1 <Method java.lang.Object()>
4 return
Method void b()
0 iconst_0
1 istore_1
2 goto 8
5 iinc 1 1
8 iload_1
9 bipush 100
11 if_icmple 5
14 return
Method void c()
0 bipush 100
2 istore_1
3 goto 9
6 iinc 1 -1
9 iload_1
10 ifge 6
13 return
参考リンク
http://www.asahi-net.or.jp/~dp8t-asm/java/tips/OptCompareZero.html
00216
NGNG>>18
うーん。10年以上前は、動かすハードもめちゃくちゃ遅かった。
あなーた、Z80の2.5メガヘルツ相当とかで組んでみなさいって。
当時のcmpとxorの速度差ってどのくらいあったっけか?
まあ、今の若い衆には「信じられない」話なんだろうね。
0022デフォルトの名無しさん
NGNGif( !aaa )
これって今は同じコード吐くの?
0023デフォルトの名無しさん
NGNG今も昔も、同じコードは吐かない。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG件の個所が何ミリ秒向上しようと、1度しか呼ばれない個所なら意味が無い。
1億回のループの中とかなら話は違うかもしれないけどさ。
みんな書き方によって処理速度が微妙に違うのは承知しているでしょ。
ただ、現在はプロセッサの処理速度が飛躍的に向上したので、
わかりにくいけど微妙に速いという表記より、保守しやすいコードが望まれる。
昔の幻影にとらわれているジジイは逝ってください。
stricmpのように真偽を返す関数でないものは、
明示的にゼロと比較したほうがスキルの低い開発者にも理解しやすいので、
チーム開発を行うときにバグを抑制できる可能性がある。
0026デフォルトの名無しさん
NGNG最適化しないコンパイラなら吐き出すコードも違うだろうけど
なんつーか、この程度の事でレベル云々言う>>14イタイ
大体この程度の最適化で10倍の差がでる環境ってどういう環境だよ(藁
俺もアセンブラやるけどそんな環境見たことねーよ
ついでに言うと処理系依存のハナシはナシな、釘刺しとくぞ>>14
0027デフォルトの名無しさん
NGNG俺が6809でCやってたころは、
文字列比較ごときで遅いライブラリ関数なんぞ呼ばなかったわい。
0028デフォルトの名無しさん
NGNG逆にiのループのほうが実行命令が長くなる場合もある
CPU(MPU)が8ビット処理か16ビット処理かによる・・・
0029
NGNG結論キボン
003015
NGNG>>あなーた、Z80の2.5メガヘルツ相当とかで組んでみなさいって。
ってゆーか、制御系なんで未だにそんなもんです・・・
0031デフォルトの名無しさん
NGNG組み込み分野に来てよ。
いまだに手動最適化に命削ってるよ。
高速化よりはコンパクト化に命削ってるけど・・・
1バイト削るのも大変で泣ける。
アルゴリズムの見直しで大抵圧縮できるけどね。
0032デフォルトの名無しさん
NGNG==の方が超高速だぞ。
ギコハハハハハ
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGいや結論っていうか何ていうか
1はどっちが「カッコイイ?」って聞いてるんスけど…
0035デフォルトの名無しさん
NGNGアナクロな6は逝ってよし。
制御系を前提に話してたとしても、注釈もつけずに
そんな一般的でないターゲットを前提に話してる時点で
逝ってよし。
00366
NGNG話が「違いがあるのか?」って流れだったから、
「ある」って事で書いただけで、
違いがある->早くするために昔はやったんだ。
と、俺は言っただけ。べーつに、高性能な環境でわざわざヤレ
なんて言ってないよ。
要求されなければ、メンテナンス優先のソースにするのは当たり前です。
私はプロですから。
0037デフォルトの名無しさん
NGNG重箱の隅つつく人の書き込みないとつまらないので
0038デフォルトの名無しさん
NGNGお前、Cの前に日本語勉強しろよ
どっちがカッコイイ?
って話だったのに、勝手に解釈捻じ曲げんなよ
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGインプリメンテーション依存の話は、処理系を明らかにして
話さないと意味がないし、1の意図と異なる。
本題については、定数は比較演算子の左に書く癖を付けて
おいた方が、単純ミスを減らす効用があるという合理的な理
由があるので、Aの方がカコイイ(藁
0041ひげねこ
NGNG大量に比較する場合、文字列クラスで囲って中では
ハッシュ値で比較する方が速いと思うのですが…。
6のような人用に「ロートルプログラマー板」キボーン
0042デフォルトの名無しさん
NGNG004326
NGNG制御系で最適化語るならstricmp()は無いだろうが…
取り敢えず6は逝っていいです
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG>>要求されなければ、メンテナンス優先のソースにするのは当たり前です。
>>私はプロですから。
要求されなくても、メンテナンス優先にのソースにするのがプロです。
0046同じになったヨ
NGNG{
return 0 ;
}
unsigned char bbb( void )
{
return 0 ;
}
unsigned char ccc( void )
{
if ( ! aaa() ){
return 1 ;
}
if ( ! bbb() ){
return 2 ;
}
return 0 ;
}
0047同じになったヨ
NGNGld A,0x0
ret
_bbb:
ld A,0x0
ret
_ccc:
ld HL,(__FP_STACK)
push HL
cal _aaa
cmp A,0x0
j f,L57
ld A,0x1
j L50007
L57:
cal _bbb
cmp A,0x0
j f,L58
ld A,0x2
j L50007
L58:
ld A,0x0
L50007:
pop HL
ld (__FP_STACK),HL
ret
00486
NGNGマニアックな皆さんにお伺いしますヨ。
if (!stricmp(msg, "hello"))
if (stricmp(msg, "hello") == 0)
C言語の歴史背景から、どっちが「かっこいい」書き方ですか?
さあ、マニアの観点からだと、どっちなの?
レベルの低い奴は何を言っても、レベルの低さは変わらないということだ。
0049
NGNG盛り上がらないんだよね
「こう書くのが定石」 みたいな本ないかな〜
005146=47
NGNG/*******************************************************/
unsigned char aaa( void )
{
return 0 ;
}
unsigned char bbb( void )
{
return 0 ;
}
unsigned char ccc( void )
{
if ( ! aaa() ){
return 1 ;
}
if ( bbb() == 0 ){
return 2 ;
}
return 0 ;
}
/*******************************************************/
_aaa:
ld A,0x0
ret
_bbb:
ld A,0x0
ret
_ccc:
ld HL,(__FP_STACK)
push HL
cal _aaa
cmp A,0x0
j f,L57
ld A,0x1
j L50007
L57:
cal _bbb
cmp A,0x0
j f,L58
ld A,0x2
j L50007
L58:
ld A,0x0
L50007:
pop HL
ld (__FP_STACK),HL
ret
とゆーことで、東芝の8ビットMPUでは、結果は同じ。。。6はバカ。
0052デフォルトの名無しさん
NGNG0053
NGNGおかしなソースはかないか?
実行されないコードとか生成しないよね?
0054デフォルトの名無しさん
NGNGっていうか6よ、
>C言語の歴史背景から、どっちが「かっこいい」書き方ですか?
>さあ、マニアの観点からだと、どっちなの?
…スレの趣旨変えんなよ、見苦しいから。
新スレ立ててそのまんま沈んでくれ…
0055MSC v-12 でやっても結果は同じ・・・
NGNGpush ebp
mov ebp, esp
; Line 11
call _aaa
and eax, 255 ; 000000ffH
test eax, eax
jne SHORT $L472
; Line 12
mov al, 1
jmp SHORT $L471
$L472:
; Line 14
call _bbb
and eax, 255 ; 000000ffH
test eax, eax
jne SHORT $L473
; Line 15
mov al, 2
jmp SHORT $L471
$L473:
; Line 17
xor al, al
$L471:
0056デフォルトの名無しさん
NGNG00576
NGNG0058松下のMPUでも同じ・・・
NGNG000007_ D80000 @ 40 cbne 0,D0,L00007
00000A_ A010 41 mov 1,D0
00000C_ EE0 @ 42 jmp L00010
43 L00007
00000E FE0 @ 44 jsr _bbb
00000F_ D80000 @ 45 cbne 0,D0,L00011
000012_ A020 46 mov 2,D0
000014_ EE0 @ 47 jmp L00010
0059デフォルトの名無しさん
NGNG>>45は話の流れを読む以前に、日本語が読めないかと思われ。
0060デフォルトの名無しさん
NGNGロートルプログラマ板 ローカルルール(x86用)
・mov ax, 0よりxor ax, ax
・条件によって変数に違う値を入れる場合、まず代入して条件によって上書き
・jpzの前にcmp ax, 0がくるようなコードはCのレベルで阻止
006126
NGNG>>48=57
なんと言えば良いのやら、端的に言うと幼稚だ。
自分の>>12とか>>14の発言読み返してみ。
1の趣旨に反して最適化とか昔話とかレベルとか言い出したの誰なんだろうね。
で、俺の>>26については言及せずに逃げる、と…
スマンが「幼稚」以外の形容詞が浮かばんよ。
「へー。私はプロですが。」が聞いて呆れる。
俺自身if(!hoge())…みたいな書き方はしても、それでレベル云々は言わんなぁ
だって恥ずかし過ぎるし、マジで。
0062俺はロートルだから
NGNG0063デフォルトの名無しさん
NGNGどうせ6は職場でも放置され慣れてるんだからさ。
0064デフォルトの名無しさん
NGNG真にならない人は低レベル。
00656
NGNG006642
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG激しく同意。
>>63=>>67
放置しないの???(藁
0069デフォルトの名無しさん
NGNGあほ。
0070:デフォルトの名無しさん
NGNG出力コードの差とか言い出したバカは誰だ?
先にも出てるけどコードの差なら処理系依存じゃねぇの?>>どっかのバカ
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG代表して1が氏んでおいてくれ
======== 終了 ========
0074デフォルトの名無しさん
NGNG俺は6のような人間になりたい。
俺は6と同じ時代を生きていることを誇りに思う。
俺は6のことをもっと知りたい。
0075デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG激しく同意。
俺も6と仲良くなりたい。
俺も6と結婚したい。
俺も6のケツの穴にティムポ突っ込みたい。
俺も6のティムポをしゃぶりたい。
0078デフォルトの名無しさん
NGNGこの突然もたらされた吉報はあっという間に日本中をいや、世界中を駆け巡った。
「今日と言う日は人類がこの世に誕生してから、最もめでたい日です。さあ、皆で祝いま
しょう」
そして天皇陛下のそんな一声によって始まった盛大なパーティー。
その歓喜は瞬く間に地球上を覆い尽くし、今や絶頂の極みにあった。
「本当に死んでくれてホッとしてますわ。あの子を産んでからこの三十年、楽しいと思っ
た事など一度たりとも無かったんですもの」
そう喜びの涙を零しながら語ってくれたのは6の母である夕子さん(54)。
彼女は6を生んだ責任で一時期、牢獄に囚われていた悲しき女性だ。
だが、もう6はいない。
彼女の喜びは世界中に伝播し、この地球上に住む有りとあらゆる生き物に感動を与えたと
言っても過言ではないだろう。
「もう、最高よ!こんな楽しい事があるのなら頑張って生き続けようと思うわ」
そう笑顔を浮かべながら語るのはワシントン州精神心理学付属病院に通院しているナンシーさん(32)。
彼女は幾度と無く自殺未遂を繰り返していたがこの一件で生きる希望を見出したという。
「良くは分からないけど、とても嬉しいです。何かこう、力が湧いて来ました」
ベトナム難民の一人であるベス君(10)もはにかんだ表情を浮かべながら我々にそう語
ってくれた。
そして夜がふけても行なわれる盛大なパーティー。
それは地球上の有りとあらゆる場所で行なわれ、我々人類に、いや生けとし生けるものに
明日を生き抜く力を与える。
我々はその光景を人類始まって以来の奇跡だと確信し、ワイングラスで乾杯する。
この喜びが未来永劫続きますように。
ちっぽけな存在である我々はそう願う事しか出来ないのだから。
0079デフォルトの名無しさん
NGNGいいかげん自分の馬鹿さ加減に気付けよ
0080デフォルトの名無しさん
NGNG0081・・・
NGNG殆どの処理系で同じコードを吐く。
↓のケースの場合は、違うけどね。
for(i=5;i!=0;i--)
for(i=5;i>0;i--)
0082デフォルトの名無しさん
NGNG新しい技術についていけない人もいるって事を忘れるなよ。
自分が唯一威張れる昔の話をしたいのだよ。
みんなもいつの日か同じ立場になるのだから、
もっとやさしくしようよ!
0083デフォルトの名無しさん
NGNG0084:デフォルトの名無しさん
NGNG6さん、感動しました。
感動のあまり「あうー」って言っちゃいました。
こんなに幸せな気分になったのは初めてです。
0085ぐひひ
NGNGfor( i=5; i ; i-- ){ ... }
この書き方、あたらしいスタンダードにならないかな!?
見た目クールだし実行コードも速いし、どうだい?
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089:デフォルトの名無しさん
NGNGこのスレは呪われている!
って事でオーメソsage
0090デフォルトの名無しさん
NGNG良スレになりそうだったのにな。
>>6
俺もオールドプログラマに分類される部類だから、
なおのこと見苦しい。「昔からやっている」ことを自
慢したいようにしか見えん。
>しかし、ホントにみんな知らないンだな。
「皆が知らない」んじゃなくて、アンタが文脈読めてない
だけだ。
>戻り値の判定部分だけでも10倍ぐらい早く出来たのさ。
どういう環境だよ、それ。
009166
NGNG00926
NGNG0093デフォルトの名無しさん
NGNG6ばっかり!!
0094デフォルトの名無しさん
NGNGうんそれサイコー!今日から使うよ!
・・・自作自演はむなしいなぁ
0095デフォルトの名無しさん
NGNGがんばってねー
0096デフォルトの名無しさん
NGNG真にならない人は低レベル。
0097デフォルトの名無しさん
NGNG>結果が違う==作られるコードが違う
>真にならない人は低レベル。
文脈によるだろ。
流れを読まない+レベルを持ち出す = 64=6
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGショットキバリアなので、直前の状態によって結果が変わります。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNGいきなり変なヤシが変なツコッミいれて
C厨のクダラネー話になる。
0108デフォルトの名無しさん
NGNGにある。VBにはあるんだけど。
自分で作らなければだめ?
教えて。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGVBにはあるラシイ
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG01151
NGNGこれがク〜ルな書き方なんすねぇ〜
「結果は同じ」これは同じ動作って意味ですよ
吐き出されるコ〜ドがちょこっと違うのは当然じゃございません?
書き方変えまくって吐き出されるコ〜ドを
全くいっしょにする事なんて出来るの?
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGイミフメイ
0118ぐひひ
NGNG最近のコンパイラは賢いから最適化かかったらみんな同じ
ってことをいいたいんじゃないの?
小手先の技術でステップ縮めるよりもアルゴリズムの改良と
手順の効率化で高速化を図ろうよ
ってことをいいたいんでしょ。
0119shige
NGNG0120デフォルトの名無しさん
NGNG0121X680x0のgcc
NGNGhoge.c---------------------------------------------------
#include <string.h>
extern void hoge();
char *msg;
int main() {
if (!stricmp(msg, "hello"))
hoge();
if (stricmp(msg, "hello") == 0)
hoge();
return 0;
}
hoge.s---------------------------------------------------
...
_main:
pea ?C0(OPC)
move.l _msg,-(sp)
jbsr _stricmp
addq.w #8,sp
tst.l d0
jbne ?5
jbsr _hoge
?5:
pea ?C0(OPC)
move.l _msg,-(sp)
jbsr _stricmp
addq.w #8,sp
tst.l d0
jbne ?6
jbsr _hoge
?6:
moveq.l #0,d0
rts
...
01226
NGNG0123デフォルトの名無しさん
NGNG激しく同意!
特に↓こいつスゲエ馬鹿!
http://piza.2ch.net/test/read.cgi?bbs=tech&key=991782171&nofirst=true&st=6&to=6
0124666666
NGNG0125デフォルトの名無しさん
NGNG(1) if (!stricmp(msg, "hello"))
(2) if (stricmp(msg, "hello") == 0)
windozeなら(2)
!がプロポーショナルフォントで見つけにくいから。
emacsでもやっぱり(2)かな、strcmpは嫌い。
下みたいな反対の条件で、(ii)みたいに書く人いる?
(i) if (stricmp(msg, "hello"))
(ii) if (stricmp(msg, "hello") != 0)
01261
NGNG結局は同じなのねw
10倍の差が付くと言ったバカは誰よw
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGかもしれんが、stricmp ではなく strcmp ではないのか?
手元の処理系には stricmp ってのが無いんだけど…
0130デフォルトの名無しさん
NGNGとして
if( streql( s, "hogehoge" ) )…
としたほうが、よっぽどスッキリかと。
0131デフォルトの名無しさん
NGNGstricmp 文字列中の文字を小文字として比較します
0132デフォルトの名無しさん
NGNGホントだ、コピペしてたから気が付かなかったヨ
'i'って小さいから見落としてた(藁
0133デフォルトの名無しさん
NGNGソースコードをプロポーショナルフォントで表示する方が悪い。
0135デフォルトの名無しさん
NGNG# 偉そうなことを言っているが、俺も1つ物知りになった。
0136デフォルトの名無しさん
NGNGx:結果出力 y:コード出力
結果違う == コード違う
→(x(a) != x(b)) == (y(a) != y(b))
→!(x(a) != x(b)) == !(y(a) != y(b))
→(x(a) == x(b)) == (y(a) == y(b))
→結果同じ == コード同じ
今更、age足
01376
NGNG俺達がどっちかっていうと試行錯誤して会得した、ちょいとしたテクってのは
いまの若衆にはあまり伝わってないんだな。
CodeCompleteな本とか、少ないもんなぁ。
例えば、
if (0 == stricmp(msg, "hello"))
っての。これ、stricmp()じゃ無い関数で返値を変数と比較したい時も、
こう書いちゃう? >>115
まあ、 if ( isRet == foo(msg, "hello")) てなぐあいにさ。
俺の手下がこんなスタイルを、クールだ、なんて言ったら、そく引っぱたくね。
これをクールだなんて…、<* バカ丸出し *>、だよ。
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNGしかし今はまったく通用しないぞ。
6は20年前に登場すべきだったな。
0140デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG>いまの若衆にはあまり伝わってないんだな。
だったら今ここで伝えてくれよ、ご老体。
0143デフォルトの名無しさん
NGNG変数が右辺にあると == と = を間違えた時に発見し難いって事じゃねぇの?
if( strcmp() == 0 ) の方がいいだろ
定数と変数を比較するなら
if( 0 == hoge ) とした方がいいだろうけど
0144143
NGNGだんだん気が変になってきたYO
0145デフォルトの名無しさん
NGNG0146sage
NGNG!xx も == 0 も生成されるコードは同じだ。
バイト・位置サイクル単位の小手先の最適化前に
構造的な無駄を省け。
if (0 == xx)
だろうが
if (xx == 0)
だろうがどっちでも統一してればよし。
複数言語経験者が集まる開発なら = と == の誤記入を避ける
意味で、よし。
同じ生成コードが同じでも
if, while, for に続く括弧をスペース空けずに記入するのはやめとけ。
前後括弧内のスペースは大目に見てやる。
あと
fooBar
みたいなハンガリアンでもなんでもないいかれポンチな名前つけるのも
やめとけ。
0147この業界から逃出した男
NGNG俺なら
int iRet; // 返血見るぞゴルァ
iRet = foo( msx , "hello" );
if( iRet ) // ゼロじゃねーぞゴルァ
{
}
って書くよ。
壁 |。)ミ
0148デフォルトの名無しさん
NGNGclass名 が FooBar で インスタンスが fooBar とかやってるよ
getHoge とか、java ってこのスタイルじゃないっけ?
0149デフォルトの名無しさん
NGNGこのスレ、よくもつな。
6って類まれな厨房的才能をもってるんじゃねーか?
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGC++の継承って使うと遅くなるんでしょ?
じゃ駄目じゃんみたいな。
0152デフォルトの名無しさん
NGNG迷信です。VFT経由で1アクション増えるだけでしょ
0153デフォルトの名無しさん
NGNGif ( foo() == 0) { }
こう書けということか?
ifの後にスペース入れるの気持ち悪いんだが。
もしかして、
sizeof(xxx);
みたいにsizeof()のときはつめてる?
統一感無くて美しくないぞ、それ。
015466
NGNG一応それの元ネタは漏れっぽいので。
変数なら当然そんな風にはかかん。
定数限定。
0155デフォルトの名無しさん
NGNG>if( 0 == hoge ) とした方がいいだろうけど
だからそんな小細工する前に
コンパイラの警告レベル上げろよと
もうこの板、この1年間で何度も何度も何度も以下略
0156sage
NGNGjavaはjavaのスタイルに従うのがよいと思う
C/C++ではやめちくり
>>151
実行速度をいちいち気にしないというのはある意味正しい
実際に使ってみて速度が問題になったときに
はじめて、仕様の簡略化->構造の最適化->
末端部分のコードの最適化を行うべきだ。
組み込み系の人だと、命令コードのバイト数まで
最適化しなければならないこともあるけどね。
>>153
K&R, whitesmithあたりを見習おうということ
構造制御系のキーワード(for, while, return, if)は
スペースを空ける。
sizeofと関数呼び出しの括弧は演算子なのでくっつけておく
ちなみに
sizeof/returnは括弧いらない
昔は returnに括弧をつけないとバグって正しい値が
返らないことがあった
だから、括弧つきでreturnを書くのは、昔の名残なので、許す
()にもいろいろ種類があるってこと。
0157デフォルトの名無しさん
NGNG何話ずらそうとしてる?(藁
>>1にある評価式の書き方で出力コードが変わるとか10倍の速度差が出るとかって話はどうした?
>>26が書いてる事読んでから答えてくれよ、他人をバカと言える程の自称プロなんだろ?(藁
0159sage
NGNGCP/M用のコンパイラでも !xと==0の最適化くらいはしてたぞ
PDP-11なんかのころのコンパイラか?
ならしらん。
>>忘れた
short/longで速度が違うかもしれんが
Cでは符号拡張が頻繁に行われるため
コスト的にはあまり変わらんことが多いぞ。
float/doubleも然り。
でも、データ件数が数万件とかでかいときに
わざわざ大きなメモリを足らないようにちびちびやるのはよくある。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG実は組込み屋さんが進歩しようとしないからなんじゃないの?
これは邪推すぎ?
0162sage
NGNG同意
多分今でもz/cフラグの動きを頭の中で追っかけてるんだよ。
出てくるコードは同じだけどな。
でもまあ、6のように、微妙に、違う場合があるってのは、賛成する。
CPUの種類も増えてきてるし、cisc/mipsなんかは、ずいぶん状況異なるしな。
でも、微妙すぎて、そんな重箱の隅をつついいてるよりも
もっと他にやることいっぱいあるだろ、と思う。
0164デフォルトの名無しさん
NGNGbool a = x? true : false;
bool a;
if (x != 0) a = true;
else a = false;
前者は馬鹿には理解できんらしいので、
うちのプロジェクトでは禁止されています。
0165sage
NGNG少ないメモリ、しょぼいCPUでがんばるのも仕方ない。
たとえば、いまある電子ジャーやテレビのリモコンのCPUが
WinCEで使われてるみたいなリッチなのに置き換えられて
便利になるけど、
高いとか、重いとか、すぐ電池切れるとかじゃ悲しすぎるだろ。
ファーム系にはファーム系の事情ってもんがあって、
それはそれで、立派な技術を持ってるところも多いよ。
0166デフォルトの名無しさん
NGNG>うちのプロジェクトでは禁止されています。
自信が湧いてきました。ありがとう
0167sage
NGNGメモリ・CPUに贅沢できるPC/WSのアプリ系コーディングでは、
馬鹿に理解できるコードというよりは
一目で理解できるようなすっきりした、
メンテしやすいコードを書くのがあたりまえになってる。
馬鹿馬鹿しいけど、副作用のある式を三項演算子や論理演算子なんかと
組み合わせて使ったときの挙動など、プロジェクトの全員が、
勘違いしてたり、誤った解釈をしてたりすると悲しいことが起こるので、
そういうのは控えよう。
でも、禁止はやりすぎかも。
0169デフォルトの名無しさん
NGNG6が言いたい事はわかる。
しかし6の知識はCISC全盛期のまま止まっている。
>>6
あるCPU+コンパイラで速かったから、
別のCPU+コンパイラで速いとは限らない。
>>12でAとBの速度が逆転する処理系は実在する。
cmpとbranchを1クロックで処理できるRISCチップなんか
いまどき珍しくない。
xor後にbranchするほうが2クロックかかってかえって遅い。
6の経験ってそんな程度。
出力されたコードを確かめもせず、
昔はこれで速かったから、今でもこれで速いんだと思い込み、
遅いコードを作りつづける……。
017090
NGNG>>21=6
>あなーた、Z80の2.5メガヘルツ相当とかで組んでみなさいって。
>>17を受けてこれかい?
10倍違うコンパイラを具体的に教えてくれ。頼む。
>当時のcmpとxorの速度差ってどのくらいあったっけか?
手元に資料がないので断言できんけど、10倍差は絶対ない。
揚げ足もついでに取っとくとZ80でのcompareはcpじゃねえの?
ロートルさんようっ(藁
0171デフォルトの名無しさん
NGNG>って、みんな知らないの? まいった。
これ恥ずかし過ぎ…
どう見ても一人上手だよ…
0172sage
NGNGstrength-reduceとか知らないまま
PC/ファーム系でやってたんだろうなぁ。
char x=0;
の代わりに
インラインアセンブラとかでxor aとか書いてるのかも
0173デフォルトの名無しさん
NGNGΛ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´∀`∩ミ< 単に馴染んだ手法から脱却できないルー大柴ってだけですよ。
( つ \__________
| | |
(__)_)
一応元ネタ
piza.2ch.net/test/read.cgi?bbs=tech&key=966655286&st=620&to=620&nofirst=true
0174ぐひひ
NGNGたぶん、6 はループの展開とかいまだにやってるんじゃないかな。
確かに遅くて古いZ80とか68kとかのCPUでなら効果覿面だけど。
(さすがに10倍は無理でも2,3倍の速度upは見込めた)
xorとcpとの速度比較の話とかも持ち出してきたけど、
それって処理系依存だしね。(悪いことだとは言わないけど)
どっちにしろ、組み込み系だろうとなんだろうと、"開発環境"は
昔に比べて進歩してるんだから、最初っから小手先の技術を
盛り込まなくったって最後の段階でちょちょいと置換すれば
いいだけだし。
0175デフォルトの名無しさん
NGNG浅ヤンは毎週にて大爆笑したものだ。
どうしてどの局もゴールデンに出さないのか?
そう疑問に思いつつ、日本TV、日本のお笑いの未来を憂慮する毎日である。
017690
NGNG>たぶん、6 はループの展開とかいまだにやってるんじゃないかな。
しかも最適化バリバリかかるPCのCコンパイラで!
…とか彼の文章読んでいるとマジで思う。
速度重視という指定があったら大喜びで「知らないの!」とか
周囲にわめきながらやってそう。
>xorとcpとの速度比較の話とかも持ち出してきたけど、
>それって処理系依存だしね。(悪いことだとは言わないけど)
全く。
今の時勢では一般論に敷衍するのは全く無理な話。
0177うにゅ
NGNGなかなか面白いスレのにな〜
批判単品がなくなれば、2chはいいコミュニケーションサイトになると
おもうんですんがね
>構造制御系のキーワード(for, while, return, if)は
>スペースを空ける。
どのように書くのでしょうか?
「こうした方が読みやすい」というのには
素直に従って書きたいものですね
PERLだと、けっこう
どっちがかっこいい?ってのが発生しそうですが、
Cにはあまりないですね
0178sage
NGNG146にあるとおりだよ。
括弧とスペースのことを言ってるなら
if (a != 2)
と
if ( a != 2 )
はどっちでもいい
でも
if(a != 2)
と
if( a != 2 )
はよろしくないという意味。
式や、演算子に関していうと
結合度の強い単項演算子、関数呼び出し、[]演算子、.演算子、->演算子はくっつけって書く
その他の二項・三項演算子、はスペースを入れて書く
演算順序に注意しなければいけないときは、無駄のようでも括弧でくくる
かな。
古いけど、K&Rあたりの書式に関する説明や、knuth先生の本とか読んでみよう。
別にK&R至上主義でもないし、
GNUスタイルみたいなポリシーも、統一されてればいいと思う。
で、実際の職場なんかだと、
K&R/whitesmithあたりのコードの書き方が、
みんな知っているし、見づらくもない書き方だということ。
0179デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG関数の戻り値がAXに保存されるとして、
問題の部分を素直にコード化すると、上の式は次のようになり、
test ax,ax
jnz _01
下の式は、次のようになるように見えますが、
cmp ax,00000h
je _01
(速さは同じだが、1バイト短い(AX以外だと2バイト))
実際は、次のようになる可能性があるからでは?
cmp ax,word ptr[_02]
je _01
でも、本当の結果は最適化次第ですけどね。(^^;
0183sage
NGNGたとえばサイズ優先最適化オプションがついてたとするけど、
そのとき、if(!x) a; b; と if (x == 0) a; b; は別の中間コードになってると思う。
(条件分岐 (negate x) label_b)
(a)
(jump c)
label_b:
(b)
label_c:
(条件分岐 (equal x 0) label_b)
(a)
(jump c)
label_b:
(b)
label_c:
典型的なパターンを最適化するフェーズがきたときに、
いくつかある最適化用のテンプレートと、中間コードを比較して、
「ああ、ここは最適化できるよ」
って、コンパイラが考えるわけ。
(条件分岐 (equal x 0) label b)より(条件分岐 (negate x) label_b)
の方がバイト数の少ないアーキテクチャなら、
上の式は(条件分岐 (negate x) label_b)に置き換えられるし
その逆なら、(条件分岐 (equal x 0) label b)に置き換えられる
(本とはもっと、複雑な条件が絡んでるけどね)
で、本物のアセンブラ・もしくは機械語のコードを出力するフェーズになってはじめて
cmpとかjnzとかに置き換えられる。
相対ジャンプのほうが絶対ジャンプより速くてバイト数の少ないアーキテクチャなら、
とび先までの距離を調べて、相対ジャンプに置き換えたり、とかもする。
これが絶対じゃないけど、
大体、アセンブラレベルに落とす前に最適化フェーズが複数あるので、
最適化をまったく意識してないコンパイラでもない限りは、
やっぱり、最適化されるよ。
0184sage
NGNGすげーうそくせーよ
でも、なんとなく、わかってくれ
01856
NGNGと書けるもんだ。
俺は「これで書くべし」なんて一言も言ってないンだけどねぇ。
しかし、もう一度言うけどさぁ、俺はあくまで昔話をしただけだよ。
ANSI規格化以前の話だし、ホントに遠い昔話だよ。
えーと、>>26 って、なんだっけ?
ああ、これにも書いてあるじゃん。
「最適化しないコンパイラなら吐き出すコードも違うだろうけど 」
って。
ホントにたのみますよ、しかし2chの中でも特に馬鹿な人っているんだね。
0186>>6
NGNG0187デフォルトの名無しさん
NGNGその後の一文を引用しとくよ(藁
>なんつーか、この程度の事でレベル云々言う>>14イタイ
#14=6
で、やっぱり「処理系」と「10倍」については反論できてないねぇ
逃げてるだけじゃん
そろそろ負けを認めれば?
0188デフォルトの名無しさん
NGNG>ホントにたのみますよ、しかし2chの中でも特に馬鹿な人っているんだね。
激しく同意!
特に↓こいつ大バカだね!ギャはははは!
http://piza.2ch.net/test/read.cgi?bbs=tech&key=991782171&nofirst=true&st=6&to=6
0189デフォルトの名無しさん
NGNG恥の上塗りしてどうする?
スレ全部読んだけど、やっぱりアンタの言ってる事って整合性ないよ?
>>6で見当違いの突っ込み入れた挙句に、>>12で「って、みんな知らないの? まいった。 」
ってアンタ…
マジで病院逝って下さい
0190デフォルトの名無しさん
NGNG今更26の事を言ってる(その後何度か書き込んでる)のもおかしいので、
ただ、板を汚して楽しみたいだけの、偽者じゃないですか?
0191デフォルトの名無しさん
NGNGの79あたりに引っ越したかな?
0192デフォルトの名無しさん
NGNGなに!?そのスレの80っておれだよ・・・
01936応援団
NGNG是非一緒の職場で働きたいです。
貴方のような優秀な方が、日本に存在していたと言うだけで僕の心は
澄み渡る初夏の暑い日差しのようよ澄み切っています。
今まで巧く歩けなかった平均台も、これからは軽々わたって行けそうです。
本気で感謝しています。
有り難う6。
本気で貴方の事を愛してしまいそうです。
thank you.thank you.thank you.
0196デフォルトの名無しさん
NGNGヒーロースレがあるYO!
0197デフォルトの名無しさん
NGNG> うにゅ
んー、あの人じゃないよね…。
01986
NGNG「処理系」でウダウダ言ってる奴は、C言語がどんな言語なのか
勉強しなおしたほうがよい。
バカバカしいのは相手にしていないので、相手にされなかった
奴は、バカだと思われたと考えるように。
0199デフォルトの名無しさん
NGNG話を元に戻して、
if (!stricmp(msg, "hello"))
if (stricmp(msg, "hello") == 0)
出来るだけ、意味の無い定数は使いたくないので上。
0200199
NGNG理由じゃなくて、どっちがカッコイイか…。
でも、結果は同じく上。
0は良いけど、"=="が、何かダサい。
020166
NGNGif(0==stricmp(msg,"hello"))
が一番カッコイイんだってば。
0202デフォルトの名無しさん
NGNGまたは
typedef const char *cs_t;
int strieq(cs_t l, cs_t r) {return !stricmp(l, r); }
で
if (strieq(msg, "hello"))
は?
0203デフォルトの名無しさん
NGNG同意。
>>201
定数を==の左に持ってくるのって
if(lvalue = 0)って間違いをなくすためにやるのだろうけど、
stricmp(msg,"hello")ってlvalue(左辺値)じゃないから
この場合は必要ないと思うよ。
そもそもif(lvalue = 0)ってwarningでるだろうから
どの場合でも必要ない気もする。
>>202
必要以上にマクロ使うのは好きじゃないなぁ。
!stricmp(foo,bar)がそんなに見にくいわけでもないしね。
0204デフォルトの名無しさん
NGNG私なら、わかりやすさから
if (stricmp(msg, "hello") == 0)
です。
0205デフォルトの名無しさん
NGNGつーわけで
if (stricmp(msg, "hello") == 0)
に一票。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNGおいおい、大丈夫?
0209デフォルトの名無しさん
NGNGそんじゃ、これでどう?(笑)
if (~stricmp(msg, "hello"))
0210デフォルトの名無しさん
NGNG駄目駄目じゃん。
0211pascal厨房
NGNG0212デフォルトの名無しさん
NGNGif ( !(stricmp(msg,"hello") != 0) )
0213デフォルトの名無しさん
NGNG一般的には成功で真、失敗で偽とすることが多いよね。
stricmp関数を文字列が等しいかという意味で使おうとすると、
等しければ偽、等しくなければ真が帰ることになる。
if(!stricmp(msg,"hello"))
のような書き方は、スキルの低い開発者に「偽==失敗==等しくない」という
誤解を与える可能性がある。
よって俺は==0を推奨。
0214デフォルトの名無しさん
NGNG>スキルの低い開発者に「偽==失敗==等しくない」という誤解を与える可能性
アホな学生の間違いでは?
少なくとも、開発者なんて肩書きを持ってたら、
それくらいの知識は、あって当然だと思いますし、
そもそもifは、真(!0)偽(0)で条件分岐するのであって、
等しいか、等しくないかで分岐する訳ではないですからね…。
0215デフォルトの名無しさん
NGNGそんなトンチキな誤解をする奴はクビ。
0217デフォルトの名無しさん
NGNGなんで文系のやつがソフトハウスに入ってくるんだヨ
なんでプログラムできないのにSEになれるんだヨ
0218デフォルトの名無しさん
NGNG理系でもプログラム書けない奴もいるし
文系だからってプログラム書けないってこたぁない。
0219デフォルトの名無しさん
NGNG218 == 理系から馬鹿にされているパシリプログラマー
0221デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNGif (stricmp(msg, "hello") == 0)
と書く。
if (!stricmp(msg, "hello"))
のほうがカッコイイが、わかりにくい。
0225デフォルトの名無しさん
NGNGいや、ねたですって。やってないよ、ホント。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGif (stricmp(msg, "hello") == 0)
と書く。
if (stricmp(msg, "hello") >= 0)
と、なったり
if (stricmp(msg, "hello") <= 0)
と、なったりしたりすることもあるので。
0228デフォルトの名無しさん
NGNG正解。
0230名無しさん
NGNG0231デフォルトの名無しさん
NGNG素晴らしい。どっちでもいいや派だったが、== 0派に転向するぜ!
0232デフォルトの名無しさん
NGNGそうか。それなら納得。
0233デフォルトの名無しさん
NGNG023466
NGNG同意。
0235233
NGNG0236デフォルトの名無しさん
NGNGわかったわかった、君が2位ってことにしといてやるよ(w
0237233
NGNG次の寝たき盆
0238デフォルトの名無しさん
NGNG次のネタは多分ないよ。
0239デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
#define STREQUAL(a, b) (strcmp((a), (b)) == 0)
int main(void) {
char *a = "ABC";
if (STREQUAL(a,"ABC"))
printf("等しい\n");
else
printf("等しくない\n");
if (STREQUAL(a,"DEF"))
printf("等しい\n");
else
printf("等しくない\n");
return 0;
}
0241デフォルトの名無しさん
NGNG>>202-203
しつこいね。
>>240
bool a = x;
じゃだめ?
0242239
NGNG0243デフォルトの名無しさん
NGNGif(hogehoge)
foo();
else
bar();
を
(hogehoge)?
foo()
:
bar();
と書いてみるのはどうだろう
0244デフォルトの名無しさん
NGNG6が昔話をまじえつつ語ってくれるのを待て
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG024766
NGNGfoo();
}
else {
bar();
}
の方が好み。
3項演算子バージョンは格好悪いと思う。
hogehoge、ではネタ的にいまいちひねる部分が無い気も。
0248デフォルトの名無しさん
NGNGelse {
この部分はいただけない。
って突っ込んで欲しくてわざと書いたでしょ?
0249デフォルトの名無しさん
NGNGまた戻ってきて昔の話を語ってください
0250デフォルトの名無しさん
NGNG複数行もよいと思うけど。
hoge = (cond1) ? val1 :
(cond2) ? val2 :
(cond3) ? val3 :
(cond4) ? val4 :
val5;
って感じで、switch〜case 文のように書くんだよ。
0251デフォルトの名無しさん
NGNGすげークールだ!ちょっとかっこいいかも
0252デフォルトの名無しさん
NGNG6なんて250に比べたらウンコクソですね!!
0253デフォルトの名無しさん
NGNGはいかに。
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG7行スレ http://piza.2ch.net/test/read.cgi?bbs=tech&key=984182993 での下のテクとどっちが カコイイ?
while((c=getc(r))-EOF){}
0256255
NGNGgetc->getchar
0257デフォルトの名無しさん
NGNGEOF==-1って保証されてたっけ?
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG比べるまでもなく6はウンコだろ…
0260デフォルトの名無しさん
NGNG関数の型が左辺値になったらどうするよ(藁)。
02616の下僕
NGNGhttp://salad.2ch.net/test/read.cgi?bbs=ymag&key=991895204
02626
NGNGと書けるもんだ。
俺は「これで書くべし」なんて一言も言ってないンだけどねぇ。
しかし、もう一度言うけどさぁ、俺はあくまで昔話をしただけだよ。
ANSI規格化以前の話だし、ホントに遠い昔話だよ。
えーと、>>26 って、なんだっけ?
ああ、これにも書いてあるじゃん。
「最適化しないコンパイラなら吐き出すコードも違うだろうけど 」
って。
ホントにたのみますよ、しかし2chの中でも特に馬鹿な人っているんだね。
0263デフォルトの名無しさん
NGNGその中にあったこれが笑えた。
http://mentai.2ch.net/test/read.cgi?bbs=otaku&key=991903680&ls=100
5で止まってる。次に書き込むと6になっちゃうんだね。
02646
NGNG0265デフォルトの名無しさん
NGNGreadやらなんたら
if (error == 0) {
readやらなんたら
if (error == 0) {
readやらなんたら
fclose(fp);
return (0);
}
}
fclose(fp);
}
return (1);
と
if ((fp = fopen(..)) == NULL)
return 1;
readやらなんたら
if (error != 0) {
fclose(fp);
return (1);
}
readやらなんたら
if (error != 0) {
fclose(fp);
return (1);
}
fclose(fp);
return (0);
はどっち?
0266デフォルトの名無しさん
NGNGsizeof(式)
return(〜)
はどうっすか?
0267デフォルトの名無しさん
NGNGしかし、そうしないと予約語を関数と間違えるツールって
なんだろう。
そういえば関数で
get_data (..)
とスペース入れる人がいるけどあれは何故だろう。
0268デフォルトの名無しさん
NGNGif などの制御文スペース空ける。
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG0272sage
NGNGsizeof(xx)
return x;
xxx x[nn];
for (i = 0; i < sizeof(x) / sizeof(xxx); i++)
こんなかんじのとき
for (i = 0; i < sizeof x / sizeof xxx; i++)
だとわかりづらいだろ?
return x; は return (x); でもいいぞ
コンパイラがばぐったこともあったので、昔の人は括弧つけた。
0273デフォルトの名無しさん
NGNGEOFが10000でも動くよ
理解した上で使うなら別にいいと思う
0274デフォルトの名無しさん
NGNGなんかウソくさいなあ。
0275デフォルトの名無しさん
NGNG上手い。
でも、個人的にはカッコつける。
>>274
あなたの知らない世界。
私も知らない世界。
でも、あったと言う話は、たまに聞く…。
0276デフォルトの名無しさん
NGNGでもせいぜいコンパイラがエラー吐いて終わりだと思うが。
バグるってのはどーにも。
なんかやたら特殊環境持ち出す人が居るけど、
そういう人はせめてどこのプラットホームのなんてコンパイラか書きません?
こんな環境もあるよーって言われても知らん人にはウソくさく見えたりするし、
極端言えば俺の作ったコンパイラではこけるとか言い出すかもしれない。
実装依存は実装を明記してほしい。
0277デフォルトの名無しさん
NGNGhttp://2ch.server.ne.jp/2ch/test/read.cgi?bbs=owarai&key=991899769
0278デフォルトの名無しさん
NGNG教えられたが、、、
0280デフォルトの名無しさん
NGNG#define Spartan return
#define Project return
int foo () {
int X ;
…………
Spartan X ;
}
char *bar () {
char *A ;
…………
Project A ;
}
0281デフォルトの名無しさん
NGNG別に関数と間違えてても、気付いた時に恥をかくだけで、
実質的には、あまり問題ないと思いますが…。
0282デフォルトの名無しさん
NGNGretarn(0);などと書いたとき
コンパイルエラーがでず(括弧がないとでる)
リンク時にエラーになるまで気づかないとかいう話かと。
0283デフォルトの名無しさん
NGNG関数の引数にファイルポインタを渡して、
関数呼び出しの前後でfopen()、fclose()をしたほうが
良いと思われ。
0284デフォルトの名無しさん
NGNG>K&Rのころの実装だったらreturnは括弧が無いとダメだったかもね。
無いと駄目なものもあったかも知れないが、殆どは無くても大丈夫
だったと思う。
それこそ処理系依存な話なので、議論しても不毛だな。
0285デフォルトの名無しさん
NGNGfp = fopen();
if (!error){
}
if (!error){
}
if (fp != 0){
fclose(fp);
}
ってやる人もいるね。
0286returnの()
NGNGどのように違ったかは忘れたが、とりあえず危険だとの判断で、全部カッコつけた。
■ このスレッドは過去ログ倉庫に格納されています