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言語なら俺に聞け 147
http://mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 148
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウカー Sacf-slpW)
2018/09/19(水) 17:56:50.83ID:XSTNMnDwa37デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 01:42:06.64ID:16ZpsTnK0 >>36
マジでIDE使え。
そして貼るときはlanguageをCにしとけ。シンタックスハイライトが変わるから。
で、どれが分からんの?
> enter
> find
> delete
> show_all
> delete_all
mainはこの際分からなくていい。
最初に理解しないといけないのは show_all だ。
ただし細かいことを言ってもキリがないが、
> void show_all(void)
なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。
普通は void show_all(tag_address* ta) だよ。
そうじゃないと複数のリストがあったときに使い物にならないだろ。
マジな話、このソースのレベルの本なら捨てた方がいい。
俺は大学の教材がいいと思うぞ。
(読んでないが)リストならググったら東工大とか出てきた。
http://www.is.titech.ac.jp/compview/clang/chap11.html
マジでIDE使え。
そして貼るときはlanguageをCにしとけ。シンタックスハイライトが変わるから。
で、どれが分からんの?
> enter
> find
> delete
> show_all
> delete_all
mainはこの際分からなくていい。
最初に理解しないといけないのは show_all だ。
ただし細かいことを言ってもキリがないが、
> void show_all(void)
なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。
普通は void show_all(tag_address* ta) だよ。
そうじゃないと複数のリストがあったときに使い物にならないだろ。
マジな話、このソースのレベルの本なら捨てた方がいい。
俺は大学の教材がいいと思うぞ。
(読んでないが)リストならググったら東工大とか出てきた。
http://www.is.titech.ac.jp/compview/clang/chap11.html
38デフォルトの名無しさん (アウアウエー Sa4a-KpFT)
2018/09/22(土) 01:44:45.64ID:WyfQotM3a voidはアリだぞ。
仕事だとなぜかvoidを書けと言われるわ
仕事だとなぜかvoidを書けと言われるわ
39デフォルトの名無しさん (ワッチョイ 4233-tHrl)
2018/09/22(土) 01:50:27.24ID:6j6Aecxq040デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 01:54:37.82ID:16ZpsTnK0 >>38
マジかーと思って linux kernel のコード見たが、書いてるな。
そして K&R 見てみたら、なんとこれも書いてた。
旧来の記法なら書くのが正しくて、物によってはコンパイル通らないとかか?
とにかく、 void がクソだというのは取り下げる。
>>39
> Cだと show_all(...) と同じ意味になって何渡してもコンパイル通っちゃうからあぶない。
マジ?今まで聞いたこと無かったわ。
しかし ( ... ) と同じ意味なら例の va_list を使う糞コードになるから、
コンパイラのチェックが甘くなるとはいえ、間違って使うって事はなさそうだが。
まあとにかくありがとう。
マジかーと思って linux kernel のコード見たが、書いてるな。
そして K&R 見てみたら、なんとこれも書いてた。
旧来の記法なら書くのが正しくて、物によってはコンパイル通らないとかか?
とにかく、 void がクソだというのは取り下げる。
>>39
> Cだと show_all(...) と同じ意味になって何渡してもコンパイル通っちゃうからあぶない。
マジ?今まで聞いたこと無かったわ。
しかし ( ... ) と同じ意味なら例の va_list を使う糞コードになるから、
コンパイラのチェックが甘くなるとはいえ、間違って使うって事はなさそうだが。
まあとにかくありがとう。
41デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 02:29:56.24ID:16ZpsTnK0 >>36
何度も言ってるがマジでIDE使え。
次にマジでこの本はソースがおかしいから捨てた方がいい。処理のフローがクレイジーだ。
何かおかしな規約に沿って書いているように思える。
178-205行目は、普通なら以下。
while(ptr_now != NULL && no >= ptr_now->no) {
if (no == ptr_now->no) {
if (address == ptr_now) address = ptr_now->next;
else ptr_before->next = ptr_now->next;
free(ptr_now);
return 0;
}
ptr_before = ptr_now;
ptr_now = ptr_now->next;
}
return -1;
何度も言ってるがマジでIDE使え。
次にマジでこの本はソースがおかしいから捨てた方がいい。処理のフローがクレイジーだ。
何かおかしな規約に沿って書いているように思える。
178-205行目は、普通なら以下。
while(ptr_now != NULL && no >= ptr_now->no) {
if (no == ptr_now->no) {
if (address == ptr_now) address = ptr_now->next;
else ptr_before->next = ptr_now->next;
free(ptr_now);
return 0;
}
ptr_before = ptr_now;
ptr_now = ptr_now->next;
}
return -1;
42デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 02:55:23.92ID:16ZpsTnK0 >>36
ちなみに一応ちゃんとポインタで書いておくと、以下な。
whileの条件は分けた方が分かりやすいか?
書き込みターゲットは一つに纏める。
int delete(int no, tag_address* ptr_now) {
tag_address** ptr_tgt = &ptr_now;
while(ptr_now != NULL) {
if (no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
}
if (no < ptr_now->no) return -1;
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
return -1;
}
ちなみに一応ちゃんとポインタで書いておくと、以下な。
whileの条件は分けた方が分かりやすいか?
書き込みターゲットは一つに纏める。
int delete(int no, tag_address* ptr_now) {
tag_address** ptr_tgt = &ptr_now;
while(ptr_now != NULL) {
if (no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
}
if (no < ptr_now->no) return -1;
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
return -1;
}
43デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 02:56:59.96ID:16ZpsTnK0 すまん、42は間違い。
引数を&で受けても意味無いな。書き直す。
引数を&で受けても意味無いな。書き直す。
44デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 03:03:32.99ID:16ZpsTnK0 >>36、42の訂正版
int delete(int no, tag_address** ptr_head) {
tag_address** ptr_tgt = ptr_head;
tag_address* ptr_now = *ptr_head;
while(ptr_now != NULL) {
if (no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
}
if (no < ptr_now->no) return -1;
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
return -1;
}
君には余計に分かりにくくなったかもしれないけど、こんな感じ。
まあ頑張れ。
int delete(int no, tag_address** ptr_head) {
tag_address** ptr_tgt = ptr_head;
tag_address* ptr_now = *ptr_head;
while(ptr_now != NULL) {
if (no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
}
if (no < ptr_now->no) return -1;
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
return -1;
}
君には余計に分かりにくくなったかもしれないけど、こんな感じ。
まあ頑張れ。
45デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 03:13:04.00ID:16ZpsTnK0 >>36
enter関数も作りがおかしい。
25で言ったとおり、
> (挿入するのは『nowとnext』の間であって、『beforeとnow』の間ではない)
このソースは before と now の間に挿入しており、明らかに間違ってる。
マジでこの本はゴミだから捨てろ。
enter関数も作りがおかしい。
25で言ったとおり、
> (挿入するのは『nowとnext』の間であって、『beforeとnow』の間ではない)
このソースは before と now の間に挿入しており、明らかに間違ってる。
マジでこの本はゴミだから捨てろ。
46デフォルトの名無しさん (ワッチョイ 6e5b-Nssn)
2018/09/22(土) 03:44:08.18ID:wyOkhzEz0 まあいいんじゃね?
処理内容毎に塊を分けて上から順番に並べているのは他人にわかりやすく説明するために都合がいいのだと思う。
きっと書籍では、N行目からM行目まではこんなことをしてます、とか、塊毎に処理内容のコメントが記述されてるのではないかと思う。
処理内容毎に塊を分けて上から順番に並べているのは他人にわかりやすく説明するために都合がいいのだと思う。
きっと書籍では、N行目からM行目まではこんなことをしてます、とか、塊毎に処理内容のコメントが記述されてるのではないかと思う。
47デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 04:34:50.74ID:16ZpsTnK0 >>46
いやこれはさすがにアウトだろ。
実際部下にこのコード出されたら絶句するだろ。
178行目と194行目のヌルチェックなんてダブってるし、マジで意味無い。
頭が悪い奴が一生懸命書いたコードだぞこれは。手本にするには酷すぎる。
delete関数は筆者には難しすぎて、異常系を一つずつ外して行ってるから無駄にダブってる。
だけどこの規模でこれだと絶望的だろ。
マジでこの本は捨てた方がいい。
18が読めないのは18の技量の問題だけど、
読みやすいコードと読みにくいコードというのは実際にあって、
要するに腕前がいい奴が書いたコードは一般的に読みやすく、下手くそが書いたコードは読みにくい。
(勿論高速化等かけた場合は若干読みにくくなるが)
頭が悪いのなら、関数を分けて分割すべきであって、
breakして下に無理矢理繋げているから意味不明なコードになる。
なお高速コードは以下。
int delete(int no, tag_address** ptr_head) {
tag_address** ptr_tgt = ptr_head;
tag_address* ptr_now = *ptr_head;
while(ptr_now != NULL && no >= ptr_now->no) {
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
if (ptr_now != NULL && no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
} else return -1;
}
いやこれはさすがにアウトだろ。
実際部下にこのコード出されたら絶句するだろ。
178行目と194行目のヌルチェックなんてダブってるし、マジで意味無い。
頭が悪い奴が一生懸命書いたコードだぞこれは。手本にするには酷すぎる。
delete関数は筆者には難しすぎて、異常系を一つずつ外して行ってるから無駄にダブってる。
だけどこの規模でこれだと絶望的だろ。
マジでこの本は捨てた方がいい。
18が読めないのは18の技量の問題だけど、
読みやすいコードと読みにくいコードというのは実際にあって、
要するに腕前がいい奴が書いたコードは一般的に読みやすく、下手くそが書いたコードは読みにくい。
(勿論高速化等かけた場合は若干読みにくくなるが)
頭が悪いのなら、関数を分けて分割すべきであって、
breakして下に無理矢理繋げているから意味不明なコードになる。
なお高速コードは以下。
int delete(int no, tag_address** ptr_head) {
tag_address** ptr_tgt = ptr_head;
tag_address* ptr_now = *ptr_head;
while(ptr_now != NULL && no >= ptr_now->no) {
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
if (ptr_now != NULL && no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
} else return -1;
}
48デフォルトの名無しさん (ブーイモ MMb6-Tz62)
2018/09/22(土) 06:34:42.89ID:Ot5g8EvkM もともこもないこというけど
カーネルの list.h 使え
カーネルの list.h 使え
49デフォルトの名無しさん (スプッッ Sd0a-RfHF)
2018/09/22(土) 08:07:18.41ID:MIXlgiXZd C言語で
A,B,C,D,E,F,G,H,I,J,K,Lの12個のペアを、3個ずつの4つのグループに分ける場合
例えばA,BとA,CとD,Eは同じグループに入れないとして、実行時には(ADF,BCE,GHI,JKL)みたいな感じで返すプログラミングの書き方の例を教えてください
A,B,C,D,E,F,G,H,I,J,K,Lの12個のペアを、3個ずつの4つのグループに分ける場合
例えばA,BとA,CとD,Eは同じグループに入れないとして、実行時には(ADF,BCE,GHI,JKL)みたいな感じで返すプログラミングの書き方の例を教えてください
50デフォルトの名無しさん (ドコグロ MMf5-GHk6)
2018/09/22(土) 08:20:30.08ID:QxjPpR9VM >>39が言ってることすら知らないID:16ZpsTnK0が偉そうに講釈たれてて笑うわ
51デフォルトの名無しさん (オイコラミネオ MMf5-KkRk)
2018/09/22(土) 08:21:44.04ID:d4QseA9MM52デフォルトの名無しさん (ワッチョイ c193-h/KU)
2018/09/22(土) 08:32:14.74ID:Yqnou5lg0 >>45
このソースでは「beforeとnowの間にnewを挿入」するenter()で正しく動作するね。
リストの定常状態で、各要素はメンバnoの値で昇順整列している。
ポインタnextのつなぎ換えをする時点で、
beforeのnoは新要素のnoより小さい、nowのnoは新要素のnoより大きい、
よって new->next = now, before->next = new と格納すれば
before->no < new->no < now->no の順序が維持される。
ただし境界条件(リストの端っこの処理)はここでは考えていない。
変数やメンバの命名をもう少し工夫すれば…と思うけど。
この投稿を書いててnewとnow、メンバnoで混乱してきた。
このソースでは「beforeとnowの間にnewを挿入」するenter()で正しく動作するね。
リストの定常状態で、各要素はメンバnoの値で昇順整列している。
ポインタnextのつなぎ換えをする時点で、
beforeのnoは新要素のnoより小さい、nowのnoは新要素のnoより大きい、
よって new->next = now, before->next = new と格納すれば
before->no < new->no < now->no の順序が維持される。
ただし境界条件(リストの端っこの処理)はここでは考えていない。
変数やメンバの命名をもう少し工夫すれば…と思うけど。
この投稿を書いててnewとnow、メンバnoで混乱してきた。
53デフォルトの名無しさん (ワッチョイ c27c-iHci)
2018/09/22(土) 08:58:29.84ID:bcuOiC7Q0 リスト操作に特化した関数を作ればいいのに
リスト操作といろんな処理を混ぜ込むから見通しが悪くなってる
教育目的ならなおのこと美しく書かないといけないのに
リスト操作といろんな処理を混ぜ込むから見通しが悪くなってる
教育目的ならなおのこと美しく書かないといけないのに
54デフォルトの名無しさん (ワッチョイ 429f-m2E0)
2018/09/22(土) 09:02:41.93ID:l48TeZqd055デフォルトの名無しさん (ワッチョイ 6175-yLbS)
2018/09/22(土) 09:35:47.75ID:7nPJqZuh0 ワロタ
56デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 09:48:51.25ID:16ZpsTnK0 >>52
そりゃ糞コードでも動くだろうさ。
しかし教科書でこれはない。マジであり得ないくらい酷い。
必要のない変数を作って保持してるだろ。
走査は25に書いたとおり、(書き落とした点を修正するが)
while (now->next && value <= now->next->value) now = now->next;
でやるんだよ。そうすれば now と next だけの世界で済む。
enter()も頂けない。これは>>53の指摘通り、
int insert(tag_address* ta) と
tag_address* make_new_element(int no, char* name, char* addr)
に分けないと駄目だ。
マジでここまで酷いのはなかなか見かけないくらい酷い。
部下がこんなコード書いたら当然突き返す会社が大半だと思うぞ。
例も酷い。これは List ではなく SortedList だし、
そもそもこれをやりたいのならCではなくC++でやるべきだし。
そりゃ糞コードでも動くだろうさ。
しかし教科書でこれはない。マジであり得ないくらい酷い。
必要のない変数を作って保持してるだろ。
走査は25に書いたとおり、(書き落とした点を修正するが)
while (now->next && value <= now->next->value) now = now->next;
でやるんだよ。そうすれば now と next だけの世界で済む。
enter()も頂けない。これは>>53の指摘通り、
int insert(tag_address* ta) と
tag_address* make_new_element(int no, char* name, char* addr)
に分けないと駄目だ。
マジでここまで酷いのはなかなか見かけないくらい酷い。
部下がこんなコード書いたら当然突き返す会社が大半だと思うぞ。
例も酷い。これは List ではなく SortedList だし、
そもそもこれをやりたいのならCではなくC++でやるべきだし。
57デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 09:49:43.97ID:16ZpsTnK0 >>54
そこで俺叩きに転じてるのが逆に、お前が馬鹿である証拠だ。
このコードは擁護のしようがないくらい酷い。ど素人でもここまで酷いコードは書かない。
お前にはそれが分からないから俺を叩こうとしてる。
お前みたいな初心者は文法のことばかり気にするが、文法の細かいところは本当に関係ないんだよ。
俺はC++コンパイラを使っているから>>39は関係なかったし、
>>38はそうじゃないから void を書くルールになってるんだろ。
そういうもんなんだよ。
文法的に問題があるケースはルールで禁止されてるか、環境で対策されてる。
まあ俺に文法知識が欠けているのは事実としても、この本がゴミなのは揺るがない。
理由は筆者が馬鹿だから、だから、マジですぐに捨てて他の本/サイトを参考にした方がいい。
嘘だと思うのなら、この事を覚えておいて、
数年後、お前らが上達してからもう一度このコードを見直して見ろ。絶句するから。
そこで俺叩きに転じてるのが逆に、お前が馬鹿である証拠だ。
このコードは擁護のしようがないくらい酷い。ど素人でもここまで酷いコードは書かない。
お前にはそれが分からないから俺を叩こうとしてる。
お前みたいな初心者は文法のことばかり気にするが、文法の細かいところは本当に関係ないんだよ。
俺はC++コンパイラを使っているから>>39は関係なかったし、
>>38はそうじゃないから void を書くルールになってるんだろ。
そういうもんなんだよ。
文法的に問題があるケースはルールで禁止されてるか、環境で対策されてる。
まあ俺に文法知識が欠けているのは事実としても、この本がゴミなのは揺るがない。
理由は筆者が馬鹿だから、だから、マジですぐに捨てて他の本/サイトを参考にした方がいい。
嘘だと思うのなら、この事を覚えておいて、
数年後、お前らが上達してからもう一度このコードを見直して見ろ。絶句するから。
58デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 09:56:21.04ID:16ZpsTnK0 ちなみに余談だが K&R の良い点は、糞コードがないこと、余分な表現がないこと、なんだよ。
無駄を限界まで削ぎ落とした、極めて上質なコードが掲載されている。
筆者が頭が良く、一流のプログラマだからだ。
実際の所、入門書は総じてゴミだ。
これは入門書を書く奴は一般的に一流のプログラマではないからだ。
だから入門書のコードはマジで参考にしない方がいい。
今回のは特に。
お前らが上達すれば、このコードの酷さが分かるようになるだろうさ。
今回の顛末を覚えておいて、数年後に見直して見ろ。マジで。
無駄を限界まで削ぎ落とした、極めて上質なコードが掲載されている。
筆者が頭が良く、一流のプログラマだからだ。
実際の所、入門書は総じてゴミだ。
これは入門書を書く奴は一般的に一流のプログラマではないからだ。
だから入門書のコードはマジで参考にしない方がいい。
今回のは特に。
お前らが上達すれば、このコードの酷さが分かるようになるだろうさ。
今回の顛末を覚えておいて、数年後に見直して見ろ。マジで。
59デフォルトの名無しさん (ワッチョイ 429f-m2E0)
2018/09/22(土) 10:10:07.07ID:l48TeZqd060デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 10:24:01.19ID:16ZpsTnK061デフォルトの名無しさん (ワッチョイ 6175-yLbS)
2018/09/22(土) 10:24:32.03ID:7nPJqZuh0 たった2レスで粘着 w
62デフォルトの名無しさん (ワッチョイ 22f9-xOzC)
2018/09/22(土) 10:35:54.62ID:a9vdXzW9063デフォルトの名無しさん (ワッチョイ 2e81-coYL)
2018/09/22(土) 10:42:23.12ID:AEsgMTAW0 かまってちゃんなんだろう、相手してもらって嬉しそうだ
64デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 10:42:23.23ID:16ZpsTnK0 >>61
そりゃそうだろ。
俺が文法を知らなかったことは本筋とは関係ないし、
実際、お前ら以外気にしてないだろ。
お前らは役に立つレスを全くしてないし、ただの粘着荒らしでしかない。
なお>>39、知ってるかもしれんが以下だそうな。
> C99にて廃止予定機能となった。C11でどうなったかは不明
http://d.hatena.ne.jp/eel3/20141005/1412521223
仕様に詳しい人よろしく。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
そりゃそうだろ。
俺が文法を知らなかったことは本筋とは関係ないし、
実際、お前ら以外気にしてないだろ。
お前らは役に立つレスを全くしてないし、ただの粘着荒らしでしかない。
なお>>39、知ってるかもしれんが以下だそうな。
> C99にて廃止予定機能となった。C11でどうなったかは不明
http://d.hatena.ne.jp/eel3/20141005/1412521223
仕様に詳しい人よろしく。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
65デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 10:45:11.54ID:16ZpsTnK066デフォルトの名無しさん (ワッチョイ b105-yLbS)
2018/09/22(土) 10:54:19.57ID:BuG7Fz7K0 連投ウザ。
67デフォルトの名無しさん (ワイモマー MM62-Y32S)
2018/09/22(土) 10:56:24.32ID:rjQGIIPhM >> void show_all(void)
>
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
以下のコード見たことありまちゅか〜?wwww
#inlcude <stdio.h>
int main(void)
{
printf("Hello World!");
return 0;
}
>
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
以下のコード見たことありまちゅか〜?wwww
#inlcude <stdio.h>
int main(void)
{
printf("Hello World!");
return 0;
}
68デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 11:02:28.11ID:PGp2AKzL0 こういう簡単なコードの書き方なら
喜々として低学歴知恵遅れのシロウトが喜々として一杯よってくる
喜々として低学歴知恵遅れのシロウトが喜々として一杯よってくる
69デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 11:09:05.39ID:16ZpsTnK0 つか、粘着馬鹿共は誰も役に立つことを言えてない件。
お前らが俺に粘着する意味は何なんだ?
なお>>18、一番近いのは std:forward_list でソース例は以下だが、
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/forward_list.h
毎回思うがGNUは別の意味で読みづらいから(マクロまぶしすぎ)
今の君には無理だが、可能ならこれを読んだ方がいい。最終的な目標にしとけ。
>>37で既に示した東工大、斜め読みしたが、
1. before 関数 を使って list_add 関数を修正して p の「直後」に挿入
2. before 関数
だから明らかにこっちの方が筋がいい。
2の意味は分からないだろうが、これはコンパレーターであり、関数ポインタに繋がる。
こちらはそもそも教育の現場、やはりちゃんとしている。
こっち使った方がいいと思うぞ。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
お前らが俺に粘着する意味は何なんだ?
なお>>18、一番近いのは std:forward_list でソース例は以下だが、
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/forward_list.h
毎回思うがGNUは別の意味で読みづらいから(マクロまぶしすぎ)
今の君には無理だが、可能ならこれを読んだ方がいい。最終的な目標にしとけ。
>>37で既に示した東工大、斜め読みしたが、
1. before 関数 を使って list_add 関数を修正して p の「直後」に挿入
2. before 関数
だから明らかにこっちの方が筋がいい。
2の意味は分からないだろうが、これはコンパレーターであり、関数ポインタに繋がる。
こちらはそもそも教育の現場、やはりちゃんとしている。
こっち使った方がいいと思うぞ。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
70デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 11:10:50.53ID:PGp2AKzL0 低学歴知恵遅れはこの程度のコードしか
理解できないのがよくわかるわ
理解できないのがよくわかるわ
71デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 11:13:00.76ID:PGp2AKzL0 まず質問と関係ない内容で喜々として得意になってレスしてる
こういう簡単な内容ならめっちゃ元気
こういう簡単な内容ならめっちゃ元気
72デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 11:25:44.82ID:16ZpsTnK0 ああ、そういえば一応>>18には直球で返した方がいいか?なら、
*ptr_now:今エレメント
*ptr_before:前エレメント
*ptr_new:新エレメント
であり、まんまそのままだ。
ただ、単方向リストで before は履歴が必要だから、このコードは筋が悪い。
単方向リストなら、出来る限り、
*ptr_now:今エレメント
*ptr_next:次エレメント
で構成されるべきで、この場合には履歴が要らないからより単純なコードになる。
そして東工大はそうだからそっちを参考にしろ、というわけ。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
*ptr_now:今エレメント
*ptr_before:前エレメント
*ptr_new:新エレメント
であり、まんまそのままだ。
ただ、単方向リストで before は履歴が必要だから、このコードは筋が悪い。
単方向リストなら、出来る限り、
*ptr_now:今エレメント
*ptr_next:次エレメント
で構成されるべきで、この場合には履歴が要らないからより単純なコードになる。
そして東工大はそうだからそっちを参考にしろ、というわけ。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
73デフォルトの名無しさん (ワッチョイ b116-yLbS)
2018/09/22(土) 11:39:44.40ID:i0ViPFTS0 やっと気づいた w
74デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 11:41:41.67ID:PGp2AKzL0 コードがどういう書かかたされてるとか
質問してるヤツは一切してないからな
コレは低学歴知恵遅れの自分が理解できてる範囲のことを
コレは低学歴知恵遅れがひたすら連騰してるだけだからな
つまりこの質問ではどうでもいいただのコードの書き方
質問してるヤツはどういう動作をして
どうデータが格納されてるかを質問してる
低学歴知恵遅れはなんでまともに日本語が読めないわけ
まともな教育とは思えないわ。。。
質問してるヤツは一切してないからな
コレは低学歴知恵遅れの自分が理解できてる範囲のことを
コレは低学歴知恵遅れがひたすら連騰してるだけだからな
つまりこの質問ではどうでもいいただのコードの書き方
質問してるヤツはどういう動作をして
どうデータが格納されてるかを質問してる
低学歴知恵遅れはなんでまともに日本語が読めないわけ
まともな教育とは思えないわ。。。
75デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 11:45:02.82ID:PGp2AKzL0 (正)まともな教育を受けてるとは思えないわ。。。
(誤)まともな教育とは思えないわ。。。
つまり
まともな教育を受けてない低学歴知恵遅れが
このスレにきた初心者にえらそうにしてるわけ
わかる?
(誤)まともな教育とは思えないわ。。。
つまり
まともな教育を受けてない低学歴知恵遅れが
このスレにきた初心者にえらそうにしてるわけ
わかる?
76デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 11:47:39.15ID:16ZpsTnK077デフォルトの名無しさん (フリッテル MMd6-l/4I)
2018/09/22(土) 11:51:25.42ID:N6pdG9BDM よくわからんけどその本の後の方の章でそのコードを改良して双方向リストの説明でもしてるんじゃないの?
入門書とかだとよく前の章のコードの説明を元に段階的に説明していく場合があるけど
入門書とかだとよく前の章のコードの説明を元に段階的に説明していく場合があるけど
78デフォルトの名無しさん (ワイモマー MM62-Y32S)
2018/09/22(土) 11:51:52.67ID:rjQGIIPhM ファイッwww
79デフォルトの名無しさん (ワッチョイ 2e81-coYL)
2018/09/22(土) 11:57:35.70ID:AEsgMTAW0 ID:16ZpsTnK0 はNGでええやろ
80デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 11:57:50.23ID:16ZpsTnK081デフォルトの名無しさん (ブーイモ MMed-Nssn)
2018/09/22(土) 12:19:33.32ID:ZMLQwSgJM 入門書だぞ?
汎用性や高速性なんて二の次どころか入門書では不要かもしれない。
ポインタの理解も危うい段階でダブルポインタとかlist.hを提示するとか狂気の沙汰だわ。
もしもID:16ZpsTnK0が入門書を書いたらいきなりハードモードでそれこそ役に立たないから即捨て間違いないわ
汎用性や高速性なんて二の次どころか入門書では不要かもしれない。
ポインタの理解も危うい段階でダブルポインタとかlist.hを提示するとか狂気の沙汰だわ。
もしもID:16ZpsTnK0が入門書を書いたらいきなりハードモードでそれこそ役に立たないから即捨て間違いないわ
82デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 12:30:11.20ID:PGp2AKzL0 こんな簡単な質問の回答能力があるヤツはいないか
まずenter()関数をみなさい
まず一回目のenter()で動く箇所はココになる
while (ptr_now != NULL) {
・・・ ← ココ
}
if (address == NULL){
・・・ ← ココ
}
それ以外は
一回目と一回目以外、enter()では同じ
まずenter()関数をみなさい
まず一回目のenter()で動く箇所はココになる
while (ptr_now != NULL) {
・・・ ← ココ
}
if (address == NULL){
・・・ ← ココ
}
それ以外は
一回目と一回目以外、enter()では同じ
83デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 12:31:13.43ID:PGp2AKzL0 次にココをみなさい
if (no < ptr_now->no) {
break;
}
if (address->no > ptr_new->no){
address = ptr_new;
printf("address(enter)=%p\n", address);
}
ココでなにやってるか
次に考えなさい
if (no < ptr_now->no) {
break;
}
if (address->no > ptr_new->no){
address = ptr_new;
printf("address(enter)=%p\n", address);
}
ココでなにやってるか
次に考えなさい
84デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 12:40:05.82ID:PGp2AKzL085デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 12:53:15.25ID:16ZpsTnK0 >>81
ならお前がまず何か役に立つ回答をしてから言えよ。
お前だって
> *ptr_now:今エレメント
> *ptr_before:前エレメント
> *ptr_new:新エレメント
は回答出来ただろうに。(何故か>>73には感謝されてるようだし)
半角君は少なくとも自分で説明しようとしている分、お前ら粘着単発馬鹿共より数段ましだぜ。
ダブルポインタ云々ではなく、18はまず、
1. リスト構造自体を理解出来ていない
2. 多分ポインタも怪しい
3. そもそも全くプログラムが追えてない
だから、IDEで全関数の頭にブレークポイントで気が済むまでステップ実行させるべきだろ。
printfデバッグなんて何でこいつがやる必要があるんだ?
このレベルの入門書ならIDEの使い方から教えるべきだろ。
そして教科書のコードはそれとなしに汎用性があるコードであるべきなのさ。
東工大はこれを満たしてる。この本は全然駄目だ。その違いだよ。
勿論東工大は最初からEcilpse + CDTだ。
http://www.is.titech.ac.jp/compview/clang/chap1.html
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
ただマジな話、18はプログラミングは全く駄目なタイプだと思うぞ。
数学の素養/素質がない奴は、努力しても上達しない。
プログラミングは暗記で対応出来るものではないから。
プログラミング自体を止めた方がいいと思うよ。マジで。
ならお前がまず何か役に立つ回答をしてから言えよ。
お前だって
> *ptr_now:今エレメント
> *ptr_before:前エレメント
> *ptr_new:新エレメント
は回答出来ただろうに。(何故か>>73には感謝されてるようだし)
半角君は少なくとも自分で説明しようとしている分、お前ら粘着単発馬鹿共より数段ましだぜ。
ダブルポインタ云々ではなく、18はまず、
1. リスト構造自体を理解出来ていない
2. 多分ポインタも怪しい
3. そもそも全くプログラムが追えてない
だから、IDEで全関数の頭にブレークポイントで気が済むまでステップ実行させるべきだろ。
printfデバッグなんて何でこいつがやる必要があるんだ?
このレベルの入門書ならIDEの使い方から教えるべきだろ。
そして教科書のコードはそれとなしに汎用性があるコードであるべきなのさ。
東工大はこれを満たしてる。この本は全然駄目だ。その違いだよ。
勿論東工大は最初からEcilpse + CDTだ。
http://www.is.titech.ac.jp/compview/clang/chap1.html
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
ただマジな話、18はプログラミングは全く駄目なタイプだと思うぞ。
数学の素養/素質がない奴は、努力しても上達しない。
プログラミングは暗記で対応出来るものではないから。
プログラミング自体を止めた方がいいと思うよ。マジで。
86デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 12:59:10.11ID:PGp2AKzL0 printfで十分わかるからな
IDEは低学歴知恵遅れに必要
IDEは低学歴知恵遅れに必要
87デフォルトの名無しさん (ワイモマー MM62-Y32S)
2018/09/22(土) 12:59:52.28ID:rjQGIIPhM >なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
88デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:02:56.96ID:PGp2AKzL0 むしろ
ID:16ZpsTnK0 ← コイツ
が一番プログラミングに向いてない
その自覚がない
しかも相当自分の頭の悪さの自覚がない
致命的
ID:16ZpsTnK0 ← コイツ
が一番プログラミングに向いてない
その自覚がない
しかも相当自分の頭の悪さの自覚がない
致命的
89デフォルトの名無しさん (アウアウカー Sae9-KpFT)
2018/09/22(土) 13:09:23.43ID:ymnIe1Eqa 説明が下手なのは無能の証というね
90デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:10:24.37ID:PGp2AKzL0 そもそもデバッグライトは
プロのプログラミングの世界では重要な技術要件だからな
問題が発生したとき
速やかに問題点の発見ができるようにする助けになるのが
デバッグライト
問題が発生したとき
まずデバッグモードでコンパイルしてデバッグライトの出力して
なぜ問題が発生しているか原因をすみやかに発見する
幾重にも重なった巨大なシステムになるほどデバッグライトの出力は重要になる
役に立つわかりやすい適切なデバッグライトを書けるか書けないかで
だいたいそいつのオツムの程度が分かる
プロのプログラミングの世界では重要な技術要件だからな
問題が発生したとき
速やかに問題点の発見ができるようにする助けになるのが
デバッグライト
問題が発生したとき
まずデバッグモードでコンパイルしてデバッグライトの出力して
なぜ問題が発生しているか原因をすみやかに発見する
幾重にも重なった巨大なシステムになるほどデバッグライトの出力は重要になる
役に立つわかりやすい適切なデバッグライトを書けるか書けないかで
だいたいそいつのオツムの程度が分かる
91デフォルトの名無しさん (ワッチョイ c193-h/KU)
2018/09/22(土) 13:12:16.17ID:Yqnou5lg0 今日はいつもの「低学歴知恵遅れ」の人 ID:PGp2AKzL0 と
新たに登場した ID:16ZpsTnK0 の東工大ファンの人がいるのか。
新たに登場した ID:16ZpsTnK0 の東工大ファンの人がいるのか。
92デフォルトの名無しさん (ワッチョイ b147-yLbS)
2018/09/22(土) 13:12:58.27ID:UXUgdVRN0 捨てろ連呼ウゼエw
93デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:16:47.33ID:PGp2AKzL0 さらにいえば低学歴知恵遅れに作らせると
一切ログが出力されない知恵遅れなシステムになる
エラーとしか出力されない
もしくはエラーが発生してハズなのに正常終了して
停止せずに次の処理にいってしまう
一切ログが出力されない知恵遅れなシステムになる
エラーとしか出力されない
もしくはエラーが発生してハズなのに正常終了して
停止せずに次の処理にいってしまう
94デフォルトの名無しさん (ワッチョイ c212-yqSl)
2018/09/22(土) 13:21:17.50ID:sYLo1So00 voidとIDE……
Java上がりか?
Java上がりか?
95デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:24:22.34ID:PGp2AKzL0 オレの説明はカンペキだからな
96デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 13:28:52.60ID:16ZpsTnK0 一応東工大の全部読んだぞ。
俺は東工大の教材の方がずいぶんましだと思うが。
概ね初心者向けによく書けてる。(当たり前だが)
> int main() {
> struct schedule* list = NULL;
> list = list_add(list, 2009, 1, 1, 0, "元旦");
毎回書き戻すこのインタフェースについては若干検討の余地ありだけども、
ダブルポインタも難しいというのならこれでも致し方無しか。
ただこれだとインミュータブルの言語では複数ヶ所から使用出来なくなるから、
やはりオブジェクト指向で list->add() と書く癖を付けた方がいいし、
リストなんて使いたければ素直にC++使えってことだと思うけどね。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
まあ>>36のコードのゴミっぷりが分からないうちは大口叩くのは止めとけ。
そしてこれを覚えておいて、数年後に見直してみろ。
俺が何言ってたか分かるから。
>>91
ファンではないぞ。偶々ググったらヒットしただけ。
ただ、概ね大学の講義資料は良く出来てるよ。
これまでも、他大学を含めて何度もURL貼ったことがある。
(良く出来ているのが検索上位に来るだけかもしれないが、
それでもそれを有り難く利用させてもらえばいい)
俺は東工大の教材の方がずいぶんましだと思うが。
概ね初心者向けによく書けてる。(当たり前だが)
> int main() {
> struct schedule* list = NULL;
> list = list_add(list, 2009, 1, 1, 0, "元旦");
毎回書き戻すこのインタフェースについては若干検討の余地ありだけども、
ダブルポインタも難しいというのならこれでも致し方無しか。
ただこれだとインミュータブルの言語では複数ヶ所から使用出来なくなるから、
やはりオブジェクト指向で list->add() と書く癖を付けた方がいいし、
リストなんて使いたければ素直にC++使えってことだと思うけどね。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
まあ>>36のコードのゴミっぷりが分からないうちは大口叩くのは止めとけ。
そしてこれを覚えておいて、数年後に見直してみろ。
俺が何言ってたか分かるから。
>>91
ファンではないぞ。偶々ググったらヒットしただけ。
ただ、概ね大学の講義資料は良く出来てるよ。
これまでも、他大学を含めて何度もURL貼ったことがある。
(良く出来ているのが検索上位に来るだけかもしれないが、
それでもそれを有り難く利用させてもらえばいい)
97デフォルトの名無しさん (ブーイモ MMed-Nssn)
2018/09/22(土) 13:29:39.28ID:c//Edh7FM >>85
えー、あなたより先にそれ答えたけど。
単発idはnvno業者のせいなんで文句言われても困る。
ちょっとポインタで躓いたくらいでやめたほうがいいとかどんだけハードル高いんだよ。
あなたは下っ端が向いてそうだから間違っても後輩の教育係にはならんようにな。
えー、あなたより先にそれ答えたけど。
単発idはnvno業者のせいなんで文句言われても困る。
ちょっとポインタで躓いたくらいでやめたほうがいいとかどんだけハードル高いんだよ。
あなたは下っ端が向いてそうだから間違っても後輩の教育係にはならんようにな。
98デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:30:53.14ID:PGp2AKzL0 まずオマエの場合、
自分がゴミでクズの低知能の低学歴知恵遅れの自覚がない
そこが問題
講義用のプリント読んでもその程度だからな
自分がゴミでクズの低知能の低学歴知恵遅れの自覚がない
そこが問題
講義用のプリント読んでもその程度だからな
99デフォルトの名無しさん (ワッチョイ 22f9-xOzC)
2018/09/22(土) 13:31:56.76ID:a9vdXzW90 とりあえず、人に説明するのにやたらと攻撃的だったり高圧的だったりする奴は向いてないな。
100デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:33:54.35ID:PGp2AKzL0 低学歴知恵遅れがなにも理解できてないのに
分かったつもりになれる
そういう意味で東工大のプリントは優秀
分かったつもりになれる
そういう意味で東工大のプリントは優秀
101デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:40:00.87ID:PGp2AKzL0 最近話題の池上と似ている
頭悪い池上のいってるどうでもいいことや池上の本を読んで
なんか分かった気になれるのととても似ている
頭悪い池上のいってるどうでもいいことや池上の本を読んで
なんか分かった気になれるのととても似ている
102デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 13:42:35.36ID:16ZpsTnK0103デフォルトの名無しさん (アウアウエー Sa4a-KpFT)
2018/09/22(土) 13:43:22.87ID:WyfQotM3a まあこういうのは結局かけた時間だから。
同じこと繰り返しててもあかんけどね
同じこと繰り返しててもあかんけどね
104デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:47:10.22ID:PGp2AKzL0 まずオマエはな
本格的なプログラミングより
自分の本格的な頭の悪さを自覚したしたほうがいい
本格的なプログラミングより
自分の本格的な頭の悪さを自覚したしたほうがいい
105デフォルトの名無しさん (オイコラミネオ MMd6-rhI1)
2018/09/22(土) 13:49:03.34ID:QTHsDkPYM やっぱC++は糞だな
信仰してるやつ含め
信仰してるやつ含め
106デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 13:49:39.33ID:16ZpsTnK0 >>97
> ちょっとポインタで躓いたくらい
ではないぞこれは。
そして俺の経験上、プログラミングは
A. 勝手に上手くなる
B. 徐々に上手くなる
C. 全く上手くならない(本人が努力してても)
のタイプがいる。以前は不思議だったのだが、最近だんだんとこの理由も分かってきた。
で、悪いが、18はCタイプだ。
というかそもそも昨今の「全国民がプログラミングを」みたいなのが間違ってて、18はそれの被害者だ。
と見てるからの助言だが、君が18を正しく導けるならどうぞやってみてくれ。
それについて俺が反対する理由もないし。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
> ちょっとポインタで躓いたくらい
ではないぞこれは。
そして俺の経験上、プログラミングは
A. 勝手に上手くなる
B. 徐々に上手くなる
C. 全く上手くならない(本人が努力してても)
のタイプがいる。以前は不思議だったのだが、最近だんだんとこの理由も分かってきた。
で、悪いが、18はCタイプだ。
というかそもそも昨今の「全国民がプログラミングを」みたいなのが間違ってて、18はそれの被害者だ。
と見てるからの助言だが、君が18を正しく導けるならどうぞやってみてくれ。
それについて俺が反対する理由もないし。
「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
107デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 13:52:47.31ID:PGp2AKzL0 デバッグライトすら書けないヤツが
自分が十分なプログラミングができると思い込んでるわけ
典型的なダメな使えないヤツの典型だからな
オマエ自身が向いてないまず自覚をもつが先だ
とてつもない低学歴知恵遅れで底辺である自覚ももつべき
自分が十分なプログラミングができると思い込んでるわけ
典型的なダメな使えないヤツの典型だからな
オマエ自身が向いてないまず自覚をもつが先だ
とてつもない低学歴知恵遅れで底辺である自覚ももつべき
108デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 13:58:31.83ID:16ZpsTnK0109デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 14:02:20.79ID:PGp2AKzL0 まず頭が悪いヤツに言語の特性なんかわかるハズがない
それぞれの言語すら分かってないヤツに
その特性の差なんか分かるはずがない
↓こんなことを自信満々で書いてる低学歴知恵遅れだからな
37 名前:デフォルトの名無しさん (ワッチョイ f94f-yqSl)[sage] 投稿日:2018年09月22日(土) 01時42分06秒64 [深夜] ID:16ZpsTnK0 [2/24] (PC)
> void show_all(void)
なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。
普通は void show_all(tag_address* ta) だよ。
そうじゃないと複数のリストがあったときに使い物にならないだろ。
それぞれの言語すら分かってないヤツに
その特性の差なんか分かるはずがない
↓こんなことを自信満々で書いてる低学歴知恵遅れだからな
37 名前:デフォルトの名無しさん (ワッチョイ f94f-yqSl)[sage] 投稿日:2018年09月22日(土) 01時42分06秒64 [深夜] ID:16ZpsTnK0 [2/24] (PC)
> void show_all(void)
なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。
普通は void show_all(tag_address* ta) だよ。
そうじゃないと複数のリストがあったときに使い物にならないだろ。
110デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 14:03:39.37ID:16ZpsTnK0111デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 14:09:51.43ID:PGp2AKzL0 たとえば夜間バッチが動いて
エラーが発生する
ID:16ZpsTnK0 ← こういうヤツに
好きに作らせるとなんでエラーが発生したわからない様な
テロコードを書く
しかも無意識、そんなコード書いてもなにが悪いかもわからない
こんなヤツにコードを書かせる場合、強力な監視が必要になる
その労力に半端ないぐらいのムダが発生する
エラーが発生する
ID:16ZpsTnK0 ← こういうヤツに
好きに作らせるとなんでエラーが発生したわからない様な
テロコードを書く
しかも無意識、そんなコード書いてもなにが悪いかもわからない
こんなヤツにコードを書かせる場合、強力な監視が必要になる
その労力に半端ないぐらいのムダが発生する
112デフォルトの名無しさん (ワッチョイ c27c-iHci)
2018/09/22(土) 14:21:45.13ID:bcuOiC7Q0 ポインタは入門書読んだときは簡単と思ったけど規格書読んでみたら難しいと思ったな
例えばC++でtype punningを規格に沿った形で実現できるのか
memcpy使っても規格を見ると怪しいと聞いてもうね どうすりゃいいのよ
例えばC++でtype punningを規格に沿った形で実現できるのか
memcpy使っても規格を見ると怪しいと聞いてもうね どうすりゃいいのよ
113デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 14:31:58.80ID:PGp2AKzL0 むしろポインタなんかどんなアホでもすぐに理解できる
そっから先で道を誤るヤツのほうが多い
低学歴知恵遅ればっかりのこのスレみればわかるとおり
そっから先で道を誤るヤツのほうが多い
低学歴知恵遅ればっかりのこのスレみればわかるとおり
114デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 14:37:01.37ID:PGp2AKzL0 だいたいアホはシステムというもんが分かってないからな
シンタックスをしってて、動きさえすれば
それでなんでもできるもんだと勘違いしてる低学歴知恵遅れのスクツがココだからな
低学歴知恵遅れの万能感は半端ない
低学歴知恵遅れはどんだけゴミクズでどんだけ自分が致命的に頭悪いか
その自覚がない
シンタックスをしってて、動きさえすれば
それでなんでもできるもんだと勘違いしてる低学歴知恵遅れのスクツがココだからな
低学歴知恵遅れの万能感は半端ない
低学歴知恵遅れはどんだけゴミクズでどんだけ自分が致命的に頭悪いか
その自覚がない
115デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 14:44:01.16ID:16ZpsTnK0 >>112
unionのことならC++では「絶対に書け、でないと動きを保証しない」なんだろ。
俺はそれは糞で、C流の「つべこべ言わず書いたように動かせ」の方がいいと思ってる。
C++は「書いたように動く」事よりも、「自動的に速くなる」方を選んでる。
それでいい分野も多いが、不味い分野もある。
だから結果的に棲み分けされてしまう。
以前C++スレで出たはずだが、
俺はあの仕様の問題は、関数ごとに最適化条件を変えられないことにあると思うよ。
unionなんて触るのはごく一部の関数だし、そこだけ最適化を解ければ済むこと。
C++は「ソースはこう書くべき」なんてやってるからそういうのを認めない。
これが良くない。
unionのことならC++では「絶対に書け、でないと動きを保証しない」なんだろ。
俺はそれは糞で、C流の「つべこべ言わず書いたように動かせ」の方がいいと思ってる。
C++は「書いたように動く」事よりも、「自動的に速くなる」方を選んでる。
それでいい分野も多いが、不味い分野もある。
だから結果的に棲み分けされてしまう。
以前C++スレで出たはずだが、
俺はあの仕様の問題は、関数ごとに最適化条件を変えられないことにあると思うよ。
unionなんて触るのはごく一部の関数だし、そこだけ最適化を解ければ済むこと。
C++は「ソースはこう書くべき」なんてやってるからそういうのを認めない。
これが良くない。
116デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 14:56:37.58ID:PGp2AKzL0 普通にunionなんか使いまくられてる
if (::setsockopt(m_i_server_socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&i_on, sizeof(int)) < 0) {
::perror("setsockopt(SO_REUSEADDR) failed");
return -1;
}
struct sockaddr_in t_sockaddr_in;
::memset(&t_sockaddr_in, 0, sizeof(struct sockaddr_in));
t_sockaddr_in.sin_family = AF_INET;
t_sockaddr_in.sin_port = ::htons(u_port_);
t_sockaddr_in.sin_addr.s_addr = ::htonl(INADDR_ANY);
if (::bind(m_i_server_socket, (struct sockaddr *)&t_sockaddr_in, sizeof(struct sockaddr_in)) < 0) {
::perror("bind() failed");
finalize();
return -1;
}
なんで低学歴知恵遅れは自分の極端に狭い了見で
すぐにしったかすんの?
if (::setsockopt(m_i_server_socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&i_on, sizeof(int)) < 0) {
::perror("setsockopt(SO_REUSEADDR) failed");
return -1;
}
struct sockaddr_in t_sockaddr_in;
::memset(&t_sockaddr_in, 0, sizeof(struct sockaddr_in));
t_sockaddr_in.sin_family = AF_INET;
t_sockaddr_in.sin_port = ::htons(u_port_);
t_sockaddr_in.sin_addr.s_addr = ::htonl(INADDR_ANY);
if (::bind(m_i_server_socket, (struct sockaddr *)&t_sockaddr_in, sizeof(struct sockaddr_in)) < 0) {
::perror("bind() failed");
finalize();
return -1;
}
なんで低学歴知恵遅れは自分の極端に狭い了見で
すぐにしったかすんの?
117デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 15:00:47.10ID:PGp2AKzL0 低学歴知恵遅れは低学歴知恵遅れの自覚は一切なく
自信満々でテキトーなことをいうからな
自信満々でテキトーなことをいうからな
118デフォルトの名無しさん (ワッチョイ 6175-yLbS)
2018/09/22(土) 15:08:28.87ID:7nPJqZuh0 いいぞ
もっとやれ
もっとやれ
119デフォルトの名無しさん (ワッチョイ c27c-iHci)
2018/09/22(土) 15:19:40.54ID:bcuOiC7Q0 >>115
C++はunionでもだめらしい なので memcpy でもそれも怪しいと
どこだっけ C++ カンファレンスなんかで出ていた話題
テストをたくさん作って開き直るしかない面がある
C99とgcc拡張ではokなんだけど
C++はunionでもだめらしい なので memcpy でもそれも怪しいと
どこだっけ C++ カンファレンスなんかで出ていた話題
テストをたくさん作って開き直るしかない面がある
C99とgcc拡張ではokなんだけど
120デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 15:39:17.37ID:16ZpsTnK0121デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 15:42:51.93ID:PGp2AKzL0 要するになにも知らないわけか
で、オマエはなにをしっててこのスレに書きこんでるわけ?
で、オマエはなにをしっててこのスレに書きこんでるわけ?
122デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 15:44:50.26ID:PGp2AKzL0 つまり低学歴知恵遅れが
とりあえず行き当たりばったりのコードをとりあえず書いて
IDEでトレースデバッグならできますと
そう自己紹介してたワケか
とりあえず行き当たりばったりのコードをとりあえず書いて
IDEでトレースデバッグならできますと
そう自己紹介してたワケか
123デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 15:52:07.27ID:PGp2AKzL0 まさに
結果としてとりあえず動きさえすればいいという低学歴知恵遅れの思考回路といっていい
まさに地雷
結果としてとりあえず動きさえすればいいという低学歴知恵遅れの思考回路といっていい
まさに地雷
124デフォルトの名無しさん (ワイモマー MM62-Y32S)
2018/09/22(土) 16:15:07.77ID:rjQGIIPhM お、決着付いたかw
125デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 16:22:40.01ID:PGp2AKzL0 決着なんかついてない
低学歴知恵遅れのレスなんか情報価値ゼロだからな
ココまでのレスは低学歴知恵遅れの落書き
ただの低学歴知恵遅れのノイズ
オレのエレガントな回答(>>82-83)に質問したヤツが
このあとどう考えることができるかがココでは重要なワケだからな
低学歴知恵遅れのレスなんか情報価値ゼロだからな
ココまでのレスは低学歴知恵遅れの落書き
ただの低学歴知恵遅れのノイズ
オレのエレガントな回答(>>82-83)に質問したヤツが
このあとどう考えることができるかがココでは重要なワケだからな
126デフォルトの名無しさん (ワッチョイ cde3-tHrl)
2018/09/22(土) 16:48:54.50ID:OhNgC4130 低学歴知恵遅れ君が見事にスルーされててワロタ
お前ら流石だなw
お前ら流石だなw
127デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 16:53:47.18ID:PGp2AKzL0 スルーじゃない
オレのレスは一切のスキがないほどカンペキなレスだからな
オレのレスにレスすらできない
オレのレスは一切のスキがないほどカンペキなレスだからな
オレのレスにレスすらできない
128デフォルトの名無しさん (ワッチョイ 6175-yLbS)
2018/09/22(土) 18:32:31.91ID:7nPJqZuh0 よくやった
129デフォルトの名無しさん (ワッチョイ c212-yqSl)
2018/09/22(土) 20:07:04.73ID:sYLo1So00 ミスを取り繕おうとして必死に足掻く人間の尊い姿が見れました
今日はこれでおなかいっぱいです
今日はこれでおなかいっぱいです
130デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 20:24:37.68ID:16ZpsTnK0 >>119
こんな感じ?
https://stackoverflow.com/questions/25664848/unions-and-type-punning
https://adriann.github.io/undefined_behavior.html
Cならunionでよし、C++ならさらに one active を守れ、というところか。
こんな感じ?
https://stackoverflow.com/questions/25664848/unions-and-type-punning
https://adriann.github.io/undefined_behavior.html
Cならunionでよし、C++ならさらに one active を守れ、というところか。
131デフォルトの名無しさん (アウアウカー Sae9-kke4)
2018/09/22(土) 20:28:37.33ID:IQP82yEia ここCだからC++の話は他所でやれ
132デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 20:44:12.64ID:16ZpsTnK0 strict aliasing はCもだけどな
http://d.hatena.ne.jp/yohhoy/20120220/p1
http://d.hatena.ne.jp/yohhoy/20120220/p1
133デフォルトの名無しさん (ワッチョイ 62f3-coYL)
2018/09/22(土) 21:03:12.63ID:1VdbYLFX0 >>40
> とにかく、 void がクソだというのは取り下げる。
いや、voidはクソだぜ
K&R Cでは「引数が0個でなければならない」とか
「返却値は使用禁止」といった概念がなかったので
(void) のようなシュールな構文を後付けせざるを得なかったが
() で引数0個にならないというクソルールを上塗りする形で登場したものだ
クソルールの延長はずっとクソだ
> とにかく、 void がクソだというのは取り下げる。
いや、voidはクソだぜ
K&R Cでは「引数が0個でなければならない」とか
「返却値は使用禁止」といった概念がなかったので
(void) のようなシュールな構文を後付けせざるを得なかったが
() で引数0個にならないというクソルールを上塗りする形で登場したものだ
クソルールの延長はずっとクソだ
134デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 21:04:50.64ID:PGp2AKzL0 ぜんぜん違う
プロトタイプ宣言を厳密にできるようにしてるだけだからな
プロトタイプ宣言を厳密にできるようにしてるだけだからな
135デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 21:08:08.86ID:PGp2AKzL0 昔のCはプロトタイプ宣言すらなかった
引数の数や順序の誤りがかなりのバグの温床になってたからな
引数の数や順序の誤りがかなりのバグの温床になってたからな
136デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 21:13:19.69ID:PGp2AKzL0 やっぱりな低学歴知恵遅れは
なにも知らないくせにテキトーなことばっかりいうのがよくわかる
低学歴知恵遅れが二匹以上あつまると
ものすごい頭悪いレスに対してでものすごい頭悪いレスで
スレが成立することになる
なにも知らないくせにテキトーなことばっかりいうのがよくわかる
低学歴知恵遅れが二匹以上あつまると
ものすごい頭悪いレスに対してでものすごい頭悪いレスで
スレが成立することになる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 舛添要一「日本は亡国への道をひた走り」「相対的国力は中国が増大し日本が低下している」 [冬月記者★]
- 従来の健康保険証、12月1日に期限切れ マイナ利用率は37% [蚤の市★]
- 【公明党】派遣型風俗店の女性の裸をスマホで盗撮か 徳島県議会議員の古川広志容疑者逮捕 警視庁 ★2 [nita★]
- 【地方】「もうヤメとけ、また移住者様が帰っちゃうぞ」田舎の「いじめ体質」★3 [七波羅探題★]
- 【あれ?】訪日自粛どこ吹く風 中国からどっと2000人 金沢港に今年最後のクルーズ船 [nita★]
- 【サッカー】J2とJ3が観客数で歴代最多更新 J2は337万人超、J3も142万人超で過去最多「記録ずくめの最終節」 [尺アジ★]
