C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前
C言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
-
※前スレ
C言語なら俺に聞け 145
http://mevius.5ch.net/test/read.cgi/tech/1519046038/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 146
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 839f-AnMQ)
2018/04/30(月) 04:47:37.50ID:XX4FB8lc0638デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/03(金) 20:43:55.37ID:I1YZhHYF0 GOSUBとかなかった?
639デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/03(金) 20:49:49.72ID:8VyIMXmS0 fortranからの伝統芸
640デフォルトの名無しさん (ワッチョイ ffd2-ej6N)
2018/08/03(金) 21:11:54.24ID:1LNshpyd0 その昔サブルーチンの存在を知らなかった頃
gotoだけでスタックオーバーフロー的な
破綻をさせないで組んだのは結構自分の糧になってる
大人になってコーディング規約を作る側になった時
脱出のみ使用可能ってルールを作ったら
頑なに拒否するメンバーがいて仕事を外れてもらったことがる
宗教じみた反応でちょっと怖かった
gotoだけでスタックオーバーフロー的な
破綻をさせないで組んだのは結構自分の糧になってる
大人になってコーディング規約を作る側になった時
脱出のみ使用可能ってルールを作ったら
頑なに拒否するメンバーがいて仕事を外れてもらったことがる
宗教じみた反応でちょっと怖かった
641デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 22:31:36.61ID:yp/iEsny0 gotoなんかよほどの理由がない限り使わない
適切に構造化できないアホが使うとロクなことにならない
原則禁止でいい
適切に構造化できないアホが使うとロクなことにならない
原則禁止でいい
642デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 23:20:08.07ID:yp/iEsny0 >>616なんかではgoto使うケースなんかほぼない
普通にコード書いてればgotoなんかなくなる
後始末の仕方が判定できないコードを書くと
初期化が終わったあと、その初期化がむしろ不要になった場合その後始末が大変になる
知恵遅れほどいちいち不要なgotoを使いたがるからな
#define ERROR_INIT_AHO0 -1
#define ERROR_INIT_AHO1 -2
#define ERROR_INIT_AHO2 -3
#define ERROR_INIT_AHO3 -4
typedef struct tag_aho { char* p1; int fd2; FILE* fp3; } t_aho_t;
int 初期化(t_aho_t** ppt_aho) {
t_aho_t* pt_aho;
*ppt_aho = NULL;
if ((pt_aho = malloc(sizeof(t_aho_t)) == NULL) { return ERROR_INIT_AHO0; }
*ppt_aho = pt_aho;
if ((pt_aho->p1 = malloc()) == NULL) { 後始末(pt_aho); return ERROR_INIT_AHO1; }
if ((pt_aho->fd2 = open()) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO2; }
if ((pt_aho->fp3 = fopen()) == NULL) { 後始末(pt_aho); return ERROR_INIT_AHO3; }
return 0;
}
void 後始末(t_aho_t* pt_aho) {
if (pt_aho == NULL) return;
if (pt_aho->p1 != NULL) { free(pt_aho->p1); }
if (pt_aho->fd2 > 2) { close(pt_aho->fd2); }
if (pt_aho->fp3 != NULL) { fclose(pt_aho->fp3); }
free(pt_aho);
}
普通にコード書いてればgotoなんかなくなる
後始末の仕方が判定できないコードを書くと
初期化が終わったあと、その初期化がむしろ不要になった場合その後始末が大変になる
知恵遅れほどいちいち不要なgotoを使いたがるからな
#define ERROR_INIT_AHO0 -1
#define ERROR_INIT_AHO1 -2
#define ERROR_INIT_AHO2 -3
#define ERROR_INIT_AHO3 -4
typedef struct tag_aho { char* p1; int fd2; FILE* fp3; } t_aho_t;
int 初期化(t_aho_t** ppt_aho) {
t_aho_t* pt_aho;
*ppt_aho = NULL;
if ((pt_aho = malloc(sizeof(t_aho_t)) == NULL) { return ERROR_INIT_AHO0; }
*ppt_aho = pt_aho;
if ((pt_aho->p1 = malloc()) == NULL) { 後始末(pt_aho); return ERROR_INIT_AHO1; }
if ((pt_aho->fd2 = open()) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO2; }
if ((pt_aho->fp3 = fopen()) == NULL) { 後始末(pt_aho); return ERROR_INIT_AHO3; }
return 0;
}
void 後始末(t_aho_t* pt_aho) {
if (pt_aho == NULL) return;
if (pt_aho->p1 != NULL) { free(pt_aho->p1); }
if (pt_aho->fd2 > 2) { close(pt_aho->fd2); }
if (pt_aho->fp3 != NULL) { fclose(pt_aho->fp3); }
free(pt_aho);
}
643デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/03(金) 23:26:42.29ID:Fao22p7ya gote使う前にそのループを関数化で分ける
644デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 23:29:40.43ID:yp/iEsny0 正解!
645デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 23:34:32.92ID:yp/iEsny0 >>642の簡単な例なら最初のmallocのあと
pt_aho->p1 = NULL;
pt_aho->fd2 = -1;
pt_aho->fp3 = NULL;
と初期化しておくだけでどう後始末すれば判定できる
pt_aho->p1 = NULL;
pt_aho->fd2 = -1;
pt_aho->fp3 = NULL;
と初期化しておくだけでどう後始末すれば判定できる
646デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/03(金) 23:44:52.51ID:8VyIMXmS0647デフォルトの名無しさん (ワッチョイ 539e-e/QH)
2018/08/04(土) 00:39:50.00ID:iUNKVgUH0 Linux は、goto でエラー処理をまとめてる
return も、2箇所以上で使っている。
関数の冒頭で、処理しないものを、return ではじいたりしてる
MISRA-C のルール違反
トヨタなんか、MISRA-C で、5/100点とか聞くw
ルールの95% に違反w
return も、2箇所以上で使っている。
関数の冒頭で、処理しないものを、return ではじいたりしてる
MISRA-C のルール違反
トヨタなんか、MISRA-C で、5/100点とか聞くw
ルールの95% に違反w
648デフォルトの名無しさん (ワッチョイ a39f-Xflc)
2018/08/04(土) 04:04:56.84ID:2zclIjyW0 >>642
それだと毎回その関数用の構造体を作らねばならなくなっていまいち面倒ではないか?俺は>>616とその方式組み合わせたような感じにしてるよ。
int func()
{
int r = -1;
char *p1 = NULL;
int fd2 = -1;
FILE *fp3 = NULL;
if ((p1 = malloc()) == NULL) goto func_exit;
if ((fd2 = open()) == -1) {
r = -2;
goto func_exit;
}
if ((fp3 = fopen()) == NULL) {
r = -3;
goto func_exit;
}
/* 処理 */
// ここで p1, fd2, fp3 を使い終わった場合は func_exit より後でメモリ開放や
// クローズされないようにするために -1 や NULL を代入する。
r = 0; // 成功
func_exit:
if (p1) free(p1);
if (fd2 != -1) close(fd2);
if (fp3) fclose(fp3);
return r;
}
それだと毎回その関数用の構造体を作らねばならなくなっていまいち面倒ではないか?俺は>>616とその方式組み合わせたような感じにしてるよ。
int func()
{
int r = -1;
char *p1 = NULL;
int fd2 = -1;
FILE *fp3 = NULL;
if ((p1 = malloc()) == NULL) goto func_exit;
if ((fd2 = open()) == -1) {
r = -2;
goto func_exit;
}
if ((fp3 = fopen()) == NULL) {
r = -3;
goto func_exit;
}
/* 処理 */
// ここで p1, fd2, fp3 を使い終わった場合は func_exit より後でメモリ開放や
// クローズされないようにするために -1 や NULL を代入する。
r = 0; // 成功
func_exit:
if (p1) free(p1);
if (fd2 != -1) close(fd2);
if (fp3) fclose(fp3);
return r;
}
649デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 05:10:46.07ID:YA1hWK5Y0 >>641
適切に構造化できないアホさん乙
適切に構造化できないアホさん乙
650デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/04(土) 05:53:52.28ID:I5yMWHTla >>648
goto使わず普通に関数呼べばいいだけでは
goto使わず普通に関数呼べばいいだけでは
651デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 07:40:44.39ID:YA1hWK5Y0 int func()
{
int r = 1;
//無駄な初期化はしない
char *p1;
int fd2;
FILE *fp3;
p1 = malloc(); if(p1 == NULL) goto malloc_failure;
fd2 = open(); if(fd2 == -1) goto open_failure;
fp3 = fopen(); if(fp3 == NULL) goto fopen_failure;
r = 0; // 成功
//フラグの類は極力使わない
fclose(fp3);
fopen_failure:
close(fd2);
open_failure:
free(p1);
malloc_failure:
return r;
}
{
int r = 1;
//無駄な初期化はしない
char *p1;
int fd2;
FILE *fp3;
p1 = malloc(); if(p1 == NULL) goto malloc_failure;
fd2 = open(); if(fd2 == -1) goto open_failure;
fp3 = fopen(); if(fp3 == NULL) goto fopen_failure;
r = 0; // 成功
//フラグの類は極力使わない
fclose(fp3);
fopen_failure:
close(fd2);
open_failure:
free(p1);
malloc_failure:
return r;
}
652デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/04(土) 08:12:49.13ID:mQQzn2Q+0653デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/04(土) 08:15:22.02ID:mQQzn2Q+0 わざわざ専用構造体と専用後始末関数と専用エラーコードをつくってわざわざ複雑にしてるアホもいるし
変数名で自己紹介してるから自覚はあるんだろうけど
変数名で自己紹介してるから自覚はあるんだろうけど
654デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/04(土) 08:22:18.05ID:mQQzn2Q+0 初期化と後始末を包んだ関数もいるね
十数行で済むシンプルな関数に
何十行使うつもりだか
十数行で済むシンプルな関数に
何十行使うつもりだか
655デフォルトの名無しさん (ブーイモ MM67-xnas)
2018/08/04(土) 08:32:14.97ID:cyc8bEPyM Ok, so I'm looking at your code and your code is pure and utter *shit*.
656デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/04(土) 08:42:16.32ID:+vznLLf60 goto hell
657デフォルトの名無しさん (ワッチョイ ffb3-6jVY)
2018/08/04(土) 09:32:53.84ID:AH7fLvgn0 >>647
MISRAの話だとそういう制御の話がよく取り上げらてて俺もほとんど守ってないけど、データ変換の話はよく考えられててなかなか為になるよ
MISRAの話だとそういう制御の話がよく取り上げらてて俺もほとんど守ってないけど、データ変換の話はよく考えられててなかなか為になるよ
658デフォルトの名無しさん (ワッチョイ ffb3-6jVY)
2018/08/04(土) 09:33:52.60ID:AH7fLvgn0659デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 10:21:26.55ID:CpwGeL+S0 アホは後始末しないのもわかったわ
初期化がおわったあと
ファイルあけたらずーっとあけっぱなし
ヒープ作ったら作りっぱなし
なにがおきようが関数抜けたらずーっと放置
まずその部分で完結したコードが書けない
だいたいどんな知恵遅れがコード書いてんのか分かった
アホが自己紹介のコード書いてるしな
初期化がおわったあと
ファイルあけたらずーっとあけっぱなし
ヒープ作ったら作りっぱなし
なにがおきようが関数抜けたらずーっと放置
まずその部分で完結したコードが書けない
だいたいどんな知恵遅れがコード書いてんのか分かった
アホが自己紹介のコード書いてるしな
660デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/04(土) 10:43:47.43ID:+vznLLf60 それは時代遅れの化石言語Cのせい
661デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 11:02:01.24ID:CpwGeL+S0 やはりな
Cはオレみたいにエレガントなコード書けるヤツでないと使えない
オレみたいなプロフェッショナルでないとムリ
Cは言語規格が非常にシンプルで非常に優れている言語だからな
シンプルなせいで敷居も低い
そのせいでアホでも酷いコードが簡単に書けてしまう
非常に根が深い問題といっていい
Cはオレみたいにエレガントなコード書けるヤツでないと使えない
オレみたいなプロフェッショナルでないとムリ
Cは言語規格が非常にシンプルで非常に優れている言語だからな
シンプルなせいで敷居も低い
そのせいでアホでも酷いコードが簡単に書けてしまう
非常に根が深い問題といっていい
662デフォルトの名無しさん (スッップ Sd1f-sMWb)
2018/08/04(土) 11:09:25.30ID:tEqwX/6gd C11で開発してる人はいる?
663デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/04(土) 11:14:47.57ID:/DYnKp4Pa fp = fopen(filen, "rb+");
if(fp == null) {
return 0;
}
func(fpやら処理する価);
fclose(fp);
ファイルオープンに失敗したらもどるし
関数呼び出しの結果がどうだろうと解放されるしgoto使う前にint func(void){return 0;}でわければいい
if(fp == null) {
return 0;
}
func(fpやら処理する価);
fclose(fp);
ファイルオープンに失敗したらもどるし
関数呼び出しの結果がどうだろうと解放されるしgoto使う前にint func(void){return 0;}でわければいい
664デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 12:43:49.90ID:2dadGiC9d 小さな機能の関数でgotoを避ける為に関数を分けるとか
665デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 12:44:20.27ID:2dadGiC9d まさしく宗教ですね
666デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/04(土) 12:51:53.82ID:6FzZ70UGa goto使った方が見易いコードがとかいって関数分けた方が見やすいし戻る場所も関数呼んだ場所で分かりやすい
逆にgotoじゃなきゃ絶対駄目って宗教にはいってるんだろうか
逆にgotoじゃなきゃ絶対駄目って宗教にはいってるんだろうか
667デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 13:03:02.54ID:CpwGeL+S0 gotoをさけるためじゃない
適切な初期化と適切な後始末ができる機能を提供している
しかもオレが書いたコードは
全部眺めなくても初期化のしかたと後始末の仕方が分かるエレガントなコードだからな
コードの見通しもよくなる
int void func() {
t_aho_t* pt_aho;
int i_ret;
// 初期化処理
if ((i_ret = 初期化(&pt_aho)) < 0) {return i_ret; }
if (read(pt_aho->fd, p_mem, 1) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO4; }
if (fprintf(pt_aho->fd, "%c\n", *p_mem) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO5; }
// 終了
後始末(pt_aho)
}
なんの処理をやってるコードかすぐに分かる
初期化処理と後始末ばっかりが何行も続くコードなんかだれも読みたくないからな
適切な初期化と適切な後始末ができる機能を提供している
しかもオレが書いたコードは
全部眺めなくても初期化のしかたと後始末の仕方が分かるエレガントなコードだからな
コードの見通しもよくなる
int void func() {
t_aho_t* pt_aho;
int i_ret;
// 初期化処理
if ((i_ret = 初期化(&pt_aho)) < 0) {return i_ret; }
if (read(pt_aho->fd, p_mem, 1) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO4; }
if (fprintf(pt_aho->fd, "%c\n", *p_mem) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO5; }
// 終了
後始末(pt_aho)
}
なんの処理をやってるコードかすぐに分かる
初期化処理と後始末ばっかりが何行も続くコードなんかだれも読みたくないからな
668デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/04(土) 13:06:33.93ID:F7vd0ILk0 何年か前、一連のファイル群を読み、内容の検査をするプログラム書いたことがあった
複数Diskに跨がって処理を行っていたが、このDiskの検査はここで打ち切っていいとなったとき
三重ループから一気に抜けるのにgoto使ったな
goto next_disk;
使わないとそうしないと何分も時間を無駄にすることになるのでね
禁止しても良いけど、処理時間が掛かります、我慢してくれますか?ってことだな
複数Diskに跨がって処理を行っていたが、このDiskの検査はここで打ち切っていいとなったとき
三重ループから一気に抜けるのにgoto使ったな
goto next_disk;
使わないとそうしないと何分も時間を無駄にすることになるのでね
禁止しても良いけど、処理時間が掛かります、我慢してくれますか?ってことだな
669デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/04(土) 13:17:16.66ID:uWq17v08a 三十ループなんてやるのだったら間違い無く関数わけする
しかし、関数分けたら処理hourが時間がかかるって
コンパイラが最適化してくれるだろうに
しかし、関数分けたら処理hourが時間がかかるって
コンパイラが最適化してくれるだろうに
670デフォルトの名無しさん (ワッチョイ ffb3-6jVY)
2018/08/04(土) 14:02:50.07ID:AH7fLvgn0671デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 14:16:48.41ID:2dadGiC9d >>669
小さな小さな3重ループでも
3重ループという理由だけで
わざわざ関数を分けるの?
関数を分けるべきか分けないべきかは
内容に大きく依存する
分けないべきな時に
gotoの使い方を知らないという理由で
わざわざ複雑にするのがアホだ
小さな小さな3重ループでも
3重ループという理由だけで
わざわざ関数を分けるの?
関数を分けるべきか分けないべきかは
内容に大きく依存する
分けないべきな時に
gotoの使い方を知らないという理由で
わざわざ複雑にするのがアホだ
672デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 14:34:30.00ID:CpwGeL+S0 むしろそんなループは関数で分けるほうが適切だからな
だいたいそういうソースは知恵遅れしか追えないようなコードになってる
そして知恵遅れもどういう動きしてるか分からないようなコードになってる
だいたいそういうソースは知恵遅れしか追えないようなコードになってる
そして知恵遅れもどういう動きしてるか分からないようなコードになってる
673デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 14:34:45.90ID:2dadGiC9d674デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 14:49:05.09ID:CpwGeL+S0 だいたいこの程度の制御文で十分なハズだからな
バカはいちいちgoto使って追えないようなコードにするワケ
int ahoaho_exam() {
for (int i = 0; i_disk_count; ++i) {
switch (i_ret = ahoaho_exam_disk()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: continue;
default: break;
}
・・・(ここでもSKIP_ALLが返却かもしれない)
}
return 0;
}
int ahoaho_exam_disk() {
for (int i = 0; i_dir_count; ++i) {
switch (i_ret = ahoaho_exam_dir()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: return SKIP_DISK;
case SKIP_DIR: continue;
default: break;
}
・・・(ここでもSKIP_ALL、SKIP_DISKが返却かもしれない)
}
return 0;
}
バカはいちいちgoto使って追えないようなコードにするワケ
int ahoaho_exam() {
for (int i = 0; i_disk_count; ++i) {
switch (i_ret = ahoaho_exam_disk()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: continue;
default: break;
}
・・・(ここでもSKIP_ALLが返却かもしれない)
}
return 0;
}
int ahoaho_exam_disk() {
for (int i = 0; i_dir_count; ++i) {
switch (i_ret = ahoaho_exam_dir()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: return SKIP_DISK;
case SKIP_DIR: continue;
default: break;
}
・・・(ここでもSKIP_ALL、SKIP_DISKが返却かもしれない)
}
return 0;
}
675デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 14:50:14.72ID:CpwGeL+S0 (続き)
int ahoaho_exam_dir() {
for (int i = 0; i_file_count; ++i) {
switch (i_ret = ahoaho_exam_file()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: return SKIP_DISK;
case SKIP_DIR: return SKIP_DIR;
case SKIP_FILE: continue;
default: break;
}
・・・(ここでもSKIP_ALL、SKIP_DISK、SKIP_DISKが返却かもしれない)
}
return 0;
}
int ahoaho_exam_file() {
・・・(ここでもSKIP_ALL、SKIP_DISK、SKIP_DISK、SKIP_FILEが返却かもしれない)
return 0;
}
簡単にループなんか制御できる
こんなもんにgoto使うとか愚の骨頂
int ahoaho_exam_dir() {
for (int i = 0; i_file_count; ++i) {
switch (i_ret = ahoaho_exam_file()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: return SKIP_DISK;
case SKIP_DIR: return SKIP_DIR;
case SKIP_FILE: continue;
default: break;
}
・・・(ここでもSKIP_ALL、SKIP_DISK、SKIP_DISKが返却かもしれない)
}
return 0;
}
int ahoaho_exam_file() {
・・・(ここでもSKIP_ALL、SKIP_DISK、SKIP_DISK、SKIP_FILEが返却かもしれない)
return 0;
}
簡単にループなんか制御できる
こんなもんにgoto使うとか愚の骨頂
676デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 15:17:23.18ID:CpwGeL+S0 まず処理を小さな単位に分割する能力がない
初期化処理は初期化処理
終了処理は終了処理
基本的にgoto濫用するヤツは知能に著しい欠陥がある傾向がある
複雑な問題を簡単な単純な問題に分割する能力もない
複雑な問題を簡単な問題へと段階的に詳細化していく能力もない
オツムに致命的な欠陥があるとそうなるワケ
初期化処理は初期化処理
終了処理は終了処理
基本的にgoto濫用するヤツは知能に著しい欠陥がある傾向がある
複雑な問題を簡単な単純な問題に分割する能力もない
複雑な問題を簡単な問題へと段階的に詳細化していく能力もない
オツムに致命的な欠陥があるとそうなるワケ
677デフォルトの名無しさん (ワッチョイ a39d-10BI)
2018/08/04(土) 16:00:07.62ID:rXNKJXgT0 goto くらいで混乱するような頭が不思議でならない。
gotoもlongjmpも普通に使う。
まあでも一つの関数はA4一枚くらいにはまとめて書くようには言っているが、1mくらい
の長いコードを書くやつもいるし俺も2mくらいなら十分ついていける。
gotoもlongjmpも普通に使う。
まあでも一つの関数はA4一枚くらいにはまとめて書くようには言っているが、1mくらい
の長いコードを書くやつもいるし俺も2mくらいなら十分ついていける。
678デフォルトの名無しさん (ワッチョイ c3c3-wqW+)
2018/08/04(土) 16:03:48.29ID:d5qEm5S/0 50行で辛い
100行以上は無理
100行以上は無理
679デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/04(土) 16:06:56.87ID:F7vd0ILk0 >>677
昔、ソースが2万行、各関数が200行〜400行と言うプログラムをメンテしてた
しかも、それぞれがグローバル変数とスタティック変数を使いまくり
一つの関数がそのスタティック変数の値で自在に動きが変わるという
昔、ソースが2万行、各関数が200行〜400行と言うプログラムをメンテしてた
しかも、それぞれがグローバル変数とスタティック変数を使いまくり
一つの関数がそのスタティック変数の値で自在に動きが変わるという
680デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 16:20:59.53ID:CpwGeL+S0 あの程度の初期化処理で重いとか軽いとかいってる時点で
もうね知能の程度がしれるワケ
そんなミジンコ未満の検出できないようなレベルの差よりな
オマエが書いたクソコードのボトルネックになってるアルゴリズムを見直したほうがいいわ
なにがボトルネックになってるか検証する能力がまずないからな
前のクイックセレクトのときも知恵遅れの程度がしれたからな
知恵遅れは目的に応じた適切なアルゴリズムの選択もできない
知恵遅れにテキトーにコード書かかせるとだいたいガッカリするような結果になる
もうね知能の程度がしれるワケ
そんなミジンコ未満の検出できないようなレベルの差よりな
オマエが書いたクソコードのボトルネックになってるアルゴリズムを見直したほうがいいわ
なにがボトルネックになってるか検証する能力がまずないからな
前のクイックセレクトのときも知恵遅れの程度がしれたからな
知恵遅れは目的に応じた適切なアルゴリズムの選択もできない
知恵遅れにテキトーにコード書かかせるとだいたいガッカリするような結果になる
681デフォルトの名無しさん (ブーイモ MM67-xnas)
2018/08/04(土) 16:33:39.62ID:WQN/l48RM gotoの有無なんかより関数の行数、変数の数、ネストの方を気にして欲しいわ
プログラムなんぞ如何にエントロピー抑えるかだけだからな
プログラムなんぞ如何にエントロピー抑えるかだけだからな
682デフォルトの名無しさん (ドコグロ MM47-6jVY)
2018/08/04(土) 16:40:55.55ID:eIBb6soGM 半角カナ使う奴がドヤッてて笑うわ
683デフォルトの名無しさん (ワッチョイ a39f-Xflc)
2018/08/04(土) 18:18:57.70ID:2zclIjyW0684デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 18:40:31.54ID:CpwGeL+S0 例えば、このコード
https://ideone.com/SGwLK0
turnaround time ::= 0.0290 sec
turnaround time ::= 3.9219 sec
この差はなにに起因してるか
この差を解消する必要があるならどうすればいいか
そういったことを検証や分析できないからダメなワケ
もうねレスしてることがトンチンカンすぎるワケ
https://ideone.com/SGwLK0
turnaround time ::= 0.0290 sec
turnaround time ::= 3.9219 sec
この差はなにに起因してるか
この差を解消する必要があるならどうすればいいか
そういったことを検証や分析できないからダメなワケ
もうねレスしてることがトンチンカンすぎるワケ
685デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:22:28.12ID:2dadGiC9d 遅いコードしか書けないヤツが何言っても説得力ゼロ
686デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 19:30:28.40ID:YA1hWK5Y0 gotoを宗教とか言ってるバカに説得力なんてあったのかw
687デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:34:25.24ID:2dadGiC9d688デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 19:34:56.79ID:CpwGeL+S0 知恵遅れの負けず嫌いは異常だからな
知恵遅れは知恵遅れであることを自覚できない
だから知恵遅れは知恵遅れのまま
一生知恵遅れのまま
頭悪い低学歴底辺ほど自尊心だけは強い
もともとなにもないからっぽだからな
知恵遅れは知恵遅れであることを自覚できない
だから知恵遅れは知恵遅れのまま
一生知恵遅れのまま
頭悪い低学歴底辺ほど自尊心だけは強い
もともとなにもないからっぽだからな
689デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:36:15.87ID:2dadGiC9d 明らかに適さないアルゴリズムを
「クイックセレクトを選ぶのが正解」
とか言い出したアホ
まだこの発言が正しいと思ってるわけじゃないよなwww
「クイックセレクトを選ぶのが正解」
とか言い出したアホ
まだこの発言が正しいと思ってるわけじゃないよなwww
690デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:38:00.61ID:2dadGiC9d 速度が要求される低レベル処理に対して
遅い関数を使うアホ
遅い関数を使うアホ
691デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 19:38:10.32ID:YA1hWK5Y0 形容詞に比較をつけない世間知らずが人様つかまえてアホとかもうあいた口が塞がらない
692デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 19:38:18.83ID:CpwGeL+S0 クイックソートとかいってた池沼がなんかいってるわ
693デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:38:36.44ID:2dadGiC9d おまけに学歴コンプ
694デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:40:09.36ID:2dadGiC9d クイックソートを使うのはアホ
と最初に書き込んだのは私だけど
自分以外は全て同一人物だと思ってるのか?
と最初に書き込んだのは私だけど
自分以外は全て同一人物だと思ってるのか?
695デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:42:04.94ID:2dadGiC9d おれの書き込みを読めば
>>686 が勘違いということがわかる
>>686 が勘違いということがわかる
696デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 19:43:24.56ID:YA1hWK5Y0 宗教だからね
教祖様が勘違いということにしたければ
いくらでもそういうことにできる
つきあってらんねー
教祖様が勘違いということにしたければ
いくらでもそういうことにできる
つきあってらんねー
697デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:43:52.39ID:2dadGiC9d698デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 19:48:39.81ID:YA1hWK5Y0699デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 19:57:51.70ID:CpwGeL+S0 https://ideone.com/GZWy0t
別の知恵遅れがお勧めしてた方法では(総なめ)
1000万件いかないうちに上位0.1%ですらWebシミュレータが拒否するほど酷い結果になってる
turnaround time ::= 4.8076 sec
※ 5秒越えたら実行されない
オレのエレガントなコードでは知恵遅れが最悪のケースといってたデータでも同じ条件も余裕
https://ideone.com/SGwLK0
turnaround time ::= 0.0534 sec
turnaround time ::= 0.0126 sec
別の知恵遅れがお勧めしてた方法では(総なめ)
1000万件いかないうちに上位0.1%ですらWebシミュレータが拒否するほど酷い結果になってる
turnaround time ::= 4.8076 sec
※ 5秒越えたら実行されない
オレのエレガントなコードでは知恵遅れが最悪のケースといってたデータでも同じ条件も余裕
https://ideone.com/SGwLK0
turnaround time ::= 0.0534 sec
turnaround time ::= 0.0126 sec
700デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:01:49.72ID:CpwGeL+S0 やっぱりなPGなんか日本では低学歴しかやってない
701デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 20:03:50.94ID:YA1hWK5Y0 自己紹介乙
類は友を呼ぶ
つきあってる範囲がそういうこと
というだけ
類は友を呼ぶ
つきあってる範囲がそういうこと
というだけ
702デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:03:55.23ID:CpwGeL+S0 低学歴ですと自白してるヤツが何人かいるわ
わかりやすい
わかりやすい
703デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 20:04:35.09ID:YA1hWK5Y0 おまえだよ、おまえ
704デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:05:02.83ID:CpwGeL+S0 よほど低学歴なのが悔しいらしいな
残念なことに低学歴なのはレスからすぐにわかっちゃうワケ
バレてないと思ってるわけか。。。
残念なことに低学歴なのはレスからすぐにわかっちゃうワケ
バレてないと思ってるわけか。。。
705デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 20:06:23.48ID:YA1hWK5Y0 高学歴が1人でもいたら
おまえの主張は破綻する
つーかセンズリこき野郎はwinnyくらい使ってるだろ?
おまえの主張は破綻する
つーかセンズリこき野郎はwinnyくらい使ってるだろ?
706デフォルトの名無しさん (ワッチョイ e3b3-47xK)
2018/08/04(土) 20:13:46.86ID:QBtHPmTG0 コンストラクタ/デストラクタの機構があれば楽できるのにな と思うことはある
707デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 20:15:59.70ID:2dadGiC9d708デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:18:25.93ID:CpwGeL+S0 そもそもクイックセレクトがどんなアルゴリズムかすら分かってない
だから最悪な条件がどういう状態をさしてるのか分かってすらない
まあお話にならないわ
まともな教育を受けてないヤツと
話がかみあうわけがない
だから最悪な条件がどういう状態をさしてるのか分かってすらない
まあお話にならないわ
まともな教育を受けてないヤツと
話がかみあうわけがない
709デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 20:19:50.04ID:YA1hWK5Y0 低学歴→まともな教育受けてない
ぶははは
ぶははは
710デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:22:49.07ID:CpwGeL+S0 低学歴じゃなかったら
最低でも最悪の条件が分かってる上で
議論に参加するからな
そんなことも分からずに低学歴でもテキトーな書き込めるのが2ちゃんねるだからな
バレてないと思ってるらしいが低学歴とニートというのはレスからすぐにバレる
残念なことにな
最低でも最悪の条件が分かってる上で
議論に参加するからな
そんなことも分からずに低学歴でもテキトーな書き込めるのが2ちゃんねるだからな
バレてないと思ってるらしいが低学歴とニートというのはレスからすぐにバレる
残念なことにな
711デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 20:23:44.55ID:2dadGiC9d712デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:25:19.01ID:CpwGeL+S0713デフォルトの名無しさん (ドコグロ MMdf-6jVY)
2018/08/04(土) 20:35:20.71ID:jfaT+4IfM714デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 21:07:34.69ID:YA1hWK5Y0 低学歴とニートがすぐわかるなら具体的に名指ししてみな
誰にでも再検証できるように
つまり工学者として当たり前の様式で
誰にでも再検証できるように
つまり工学者として当たり前の様式で
715デフォルトの名無しさん (ワッチョイ ff23-yKTt)
2018/08/04(土) 21:27:00.60ID:RenjJImm0716デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 21:30:24.21ID:CpwGeL+S0 両方とも選択された要素の順序は保証されてない
そういうアルゴリズムだ
ソートすれば同じ結果になる
上位の抽出結果のソートなんか一瞬でおわる
そういうアルゴリズムだ
ソートすれば同じ結果になる
上位の抽出結果のソートなんか一瞬でおわる
717デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:35:47.02ID:mQQzn2Q+0 出題は上位3個で要素数が可変
718デフォルトの名無しさん (ワッチョイ a39d-10BI)
2018/08/04(土) 21:43:01.41ID:rXNKJXgT0 Cが優れているのでC++なんて全く必要性を感じなかったが、gotoで頭が混乱する
とか1mのコードくらいで頭が混乱するような人はC++をぜひ使ってみるといいと思う。
最近C++を使ってみて驚いた。Cと何ら変わらない低レベルコードを吐き出す
低レベル言語のくせに機能的には100倍も優れている。
その優れた機能を一切使わなくてもいいが、namespaceやクラスをパッケージ化の
機能としてだけつかってもCよりは随分楽に管理できる。
Cの場合はパッケージにして頭の悪い人でも分かりやすくするにはサブルーチンを使う
以外に方法がない。しかしC++はnamespaceでスコープを自由に制限できてパッケージ化
ができる。しかも50行程度に小さく刻んでもコードには何の影響も与えない。
とか1mのコードくらいで頭が混乱するような人はC++をぜひ使ってみるといいと思う。
最近C++を使ってみて驚いた。Cと何ら変わらない低レベルコードを吐き出す
低レベル言語のくせに機能的には100倍も優れている。
その優れた機能を一切使わなくてもいいが、namespaceやクラスをパッケージ化の
機能としてだけつかってもCよりは随分楽に管理できる。
Cの場合はパッケージにして頭の悪い人でも分かりやすくするにはサブルーチンを使う
以外に方法がない。しかしC++はnamespaceでスコープを自由に制限できてパッケージ化
ができる。しかも50行程度に小さく刻んでもコードには何の影響も与えない。
719デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:45:18.43ID:mQQzn2Q+0720デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:47:30.05ID:mQQzn2Q+0 高速
コードサイズ小
1回スキャン
非破壊
コードサイズ小
1回スキャン
非破壊
721デフォルトの名無しさん (ワッチョイ a39d-10BI)
2018/08/04(土) 21:50:33.63ID:rXNKJXgT0 >>679
そうだよ。昔の人はそれでも平気だったんだよ。昔の人は賢かった。まあわが社では
いまでもそれは普通にやっている。
わが社の社員は現代人だから頭は変わらないと思うが特別根気があるのだろう。
だから賢くなる。つまり昔の人も頭が良かったというよりも根気があったのだろうと思う。
そうだよ。昔の人はそれでも平気だったんだよ。昔の人は賢かった。まあわが社では
いまでもそれは普通にやっている。
わが社の社員は現代人だから頭は変わらないと思うが特別根気があるのだろう。
だから賢くなる。つまり昔の人も頭が良かったというよりも根気があったのだろうと思う。
722デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:50:37.85ID:mQQzn2Q+0 半角君のコード
低速 (最悪値は特に)
コードサイズ大
複数回スキャン
破壊
低速 (最悪値は特に)
コードサイズ大
複数回スキャン
破壊
723デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 21:53:40.18ID:CpwGeL+S0 オレのエレガントなコードに対して
最悪値になるデータ作ってみ
1000万件中上位3件程度しか抽出できないコード書いても意味ないからな
お題どおりなら3%は抽出できないといけない
上位30万件は抽出できないとな
最悪値になるデータ作ってみ
1000万件中上位3件程度しか抽出できないコード書いても意味ないからな
お題どおりなら3%は抽出できないといけない
上位30万件は抽出できないとな
724デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:56:59.42ID:mQQzn2Q+0 あ、なんか間違った
まあ時間は変わらんでしょう
まあ時間は変わらんでしょう
725デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 21:58:48.83ID:CpwGeL+S0 https://ideone.com/uQbHYf
オレのエレガントなコードでは
上位30万件でもこの速さ
turnaround time ::= 0.0534 sec
turnaround time ::= 0.0126 sec
オツムが弱いのがコードではまず実現は不可能
まず処理が終了しない
オレのエレガントなコードでは
上位30万件でもこの速さ
turnaround time ::= 0.0534 sec
turnaround time ::= 0.0126 sec
オツムが弱いのがコードではまず実現は不可能
まず処理が終了しない
726デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:01:03.23ID:CpwGeL+S0 なんか更新されてないわ
https://ideone.com/TbWDDb
turnaround time ::= 0.1077 sec
turnaround time ::= 0.0172 sec
オレのエレガントなコードにはまず勝てない
https://ideone.com/TbWDDb
turnaround time ::= 0.1077 sec
turnaround time ::= 0.0172 sec
オレのエレガントなコードにはまず勝てない
727デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:02:32.21ID:mQQzn2Q+0 「最悪値」って確率は関係ないから
文字通り「最悪値」
勝手に条件を変えてwww
出題は上位3個
出題後の書き込みもずっと上位3個という前提
文字通り「最悪値」
勝手に条件を変えてwww
出題は上位3個
出題後の書き込みもずっと上位3個という前提
728デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:03:24.81ID:CpwGeL+S0 ランダムな値使ってるのに
まず最悪値になりようがない
だからな最悪値になるデータ作ってみろよ
まず最悪値になりようがない
だからな最悪値になるデータ作ってみろよ
729デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:05:26.79ID:mQQzn2Q+0730デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:06:09.00ID:CpwGeL+S0 知恵遅れはランダムの値といってるから
入力値に疑似乱数使ってると思ってるかもしれないが
そもそもピボットの選択がランダムという意味だからな
入力値に疑似乱数使ってると思ってるかもしれないが
そもそもピボットの選択がランダムという意味だからな
731デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:06:54.29ID:mQQzn2Q+0 「最悪値」って確率は関係ないから
文字通り「最悪値」
文字通り「最悪値」
732デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:07:29.19ID:CpwGeL+S0 だからな30万件抽出できるコード書いてみ
733デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:09:41.04ID:mQQzn2Q+0 --普通の人のコード--
高速
コードサイズ小
1回スキャン
非破壊
--半角君のコード--
低速 (典型例で4倍の時間、最悪値は特にひどい)
コードサイズ大
複数回スキャン
破壊
高速
コードサイズ小
1回スキャン
非破壊
--半角君のコード--
低速 (典型例で4倍の時間、最悪値は特にひどい)
コードサイズ大
複数回スキャン
破壊
734デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:12:28.07ID:CpwGeL+S0 0.01秒オーダーが4倍とか議論不要なレベルだからな
そもそも知恵遅れが書いたコードは条件が少しかわるだけで
待ってても結果が戻ってこないからな
そもそも知恵遅れが書いたコードは条件が少しかわるだけで
待ってても結果が戻ってこないからな
735デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/04(土) 22:13:07.54ID:+vznLLf60 データふやして比較しよう
736デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:15:28.18ID:mQQzn2Q+0737デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:16:12.21ID:CpwGeL+S0 知恵遅れの精神的勝利きたわ。。。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 一人暮らしだからケツ出してみてるけど
