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/
前
http://mevius.2ch.net/test/read.cgi/tech/1494508803/
http://www.geocities.jp/c_cpp_cs/about_c/
探検
C言語なら俺に聞け 141 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/07/17(月) 21:06:47.63ID:J4JGo3XO191デフォルトの名無しさん
2017/07/24(月) 00:28:47.24ID:gGHXalJd betterCは明確な定義はないだろうけど、
http://www.kijineko.co.jp/tech/betterc/1
で言われてるのが大体の認識なんじゃない?
(ライブラリの内部だけとかではなく)クラスとかを使うならそれはもうC++でしょ
メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので適当にクラスを使うのはおすすめしない
http://www.kijineko.co.jp/tech/betterc/1
で言われてるのが大体の認識なんじゃない?
(ライブラリの内部だけとかではなく)クラスとかを使うならそれはもうC++でしょ
メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので適当にクラスを使うのはおすすめしない
192デフォルトの名無しさん
2017/07/24(月) 01:07:47.78ID:8vEBfSZH >>188
君はおそらくbetterC派だよな?(ただしほぼC++の)
ちなみにどういう組み合わせで使ってる?
GC言語と非GC言語ではそもそも組み方が違う。これは全く>>156の指摘どおりで、
しかもその後3匹馬鹿が現れて(159-161)彼の言い分が証明されてしまったw
さて関数型だが、どれくらい使っている?
俺はマトモには関数型をやってはいないが、それでも分かる範囲で言うと、
関数型言語はGC+型なし(型推論)が多い。
これに対しC++で関数型的アプローチを取ると、
型が爆発してtemplateで書くにしても大変でウザい。マジでvarくれよ、になる。
そして決定的に異なるのは資源のライフタイム管理で、GC言語はこれをやらない。
C++は一応自分でやることになっているのだが、
上記の通り、他関数型言語はGC前提なので組み方が異なっており、本来は参考にならない。
そしてC++のラムダはスタック方式に強引に載せている、なんとも中途半端なものだ。
これは全く他関数型言語のスタイルにはフィットしない。
だからC++で関数型アプローチをする現実路線としては、
C++をGC言語側に寄せる手法、つまり、
・ラムダは完全に関数オブジェクト扱いで、クロージャ変数は主にヒープ上
・スマポ、RAII徹底
という、いわゆる今のC++erが目指しているものに近くないと辛いはず。
ほぼC++寄りのbetterCというべきか。
君のスタイルはこれで合ってるか?合ってたらGCイラネってのも納得だ。
合ってなければ、どの組み合わせで使っているのか教えて欲しい。参考にする。
君はおそらくbetterC派だよな?(ただしほぼC++の)
ちなみにどういう組み合わせで使ってる?
GC言語と非GC言語ではそもそも組み方が違う。これは全く>>156の指摘どおりで、
しかもその後3匹馬鹿が現れて(159-161)彼の言い分が証明されてしまったw
さて関数型だが、どれくらい使っている?
俺はマトモには関数型をやってはいないが、それでも分かる範囲で言うと、
関数型言語はGC+型なし(型推論)が多い。
これに対しC++で関数型的アプローチを取ると、
型が爆発してtemplateで書くにしても大変でウザい。マジでvarくれよ、になる。
そして決定的に異なるのは資源のライフタイム管理で、GC言語はこれをやらない。
C++は一応自分でやることになっているのだが、
上記の通り、他関数型言語はGC前提なので組み方が異なっており、本来は参考にならない。
そしてC++のラムダはスタック方式に強引に載せている、なんとも中途半端なものだ。
これは全く他関数型言語のスタイルにはフィットしない。
だからC++で関数型アプローチをする現実路線としては、
C++をGC言語側に寄せる手法、つまり、
・ラムダは完全に関数オブジェクト扱いで、クロージャ変数は主にヒープ上
・スマポ、RAII徹底
という、いわゆる今のC++erが目指しているものに近くないと辛いはず。
ほぼC++寄りのbetterCというべきか。
君のスタイルはこれで合ってるか?合ってたらGCイラネってのも納得だ。
合ってなければ、どの組み合わせで使っているのか教えて欲しい。参考にする。
193デフォルトの名無しさん
2017/07/24(月) 01:33:19.39ID:8vEBfSZH >>190
autoがデフォか。なるほど了解だ。
>>191
> クラスとかを使うならそれはもうC++でしょ
> メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので
ここはちょっと微妙。
まずvtableはプログラミングモデルとしては見えないので知っておく必然性はない。
(もちろん知っておいたほうがいい)
次にメモリ管理だが、C++に関してはclassとstructがほぼ同一なので、
C的に自前classをnewして自分でdeleteするという使い方も出来る。(A)
そうではなくて、デストラクタとかやりだすとややこしくなってくるが、(B)
最終的なC++erの目標、コンテナ等にも問題なく載るように、となると、
ムーブコンストラクタ等のC++的お作法を全て実装しておかないといけない。(C)
俺は(A)ならC、(B)ならbetterC、(C)ならC++と呼ぶね。
多分CとC++のコンセプトの根本的な違いは、
Cは厳密に「書いてないことはやらない」なのに対し、
C++は「出来る限り全自動を目指す」だと思う。
だから、「どこまで自動化しようとしているか」で測ればよいと思う。
autoがデフォか。なるほど了解だ。
>>191
> クラスとかを使うならそれはもうC++でしょ
> メモリ管理とかvtableの仕様とかもしっかり確認する必要があるので
ここはちょっと微妙。
まずvtableはプログラミングモデルとしては見えないので知っておく必然性はない。
(もちろん知っておいたほうがいい)
次にメモリ管理だが、C++に関してはclassとstructがほぼ同一なので、
C的に自前classをnewして自分でdeleteするという使い方も出来る。(A)
そうではなくて、デストラクタとかやりだすとややこしくなってくるが、(B)
最終的なC++erの目標、コンテナ等にも問題なく載るように、となると、
ムーブコンストラクタ等のC++的お作法を全て実装しておかないといけない。(C)
俺は(A)ならC、(B)ならbetterC、(C)ならC++と呼ぶね。
多分CとC++のコンセプトの根本的な違いは、
Cは厳密に「書いてないことはやらない」なのに対し、
C++は「出来る限り全自動を目指す」だと思う。
だから、「どこまで自動化しようとしているか」で測ればよいと思う。
194デフォルトの名無しさん
2017/07/24(月) 02:16:26.89ID:gGHXalJd >>193
うーん、その定義のbetterCは誰向けなんだ
初心者はC++の仕様(fwriteをvtableのあるクラスに使っちゃったり、newしたのをfreeしたりみたいな)にはまるだろうし
中級者はどこまでがbetterCなのかで混乱しそう(参照は?とかスマートポインタは?とかstringは?とか)
上級者はbetterにすることなく快適にCかC++で満足してそう
クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
うーん、その定義のbetterCは誰向けなんだ
初心者はC++の仕様(fwriteをvtableのあるクラスに使っちゃったり、newしたのをfreeしたりみたいな)にはまるだろうし
中級者はどこまでがbetterCなのかで混乱しそう(参照は?とかスマートポインタは?とかstringは?とか)
上級者はbetterにすることなく快適にCかC++で満足してそう
クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
195デフォルトの名無しさん
2017/07/24(月) 02:58:28.33ID:xutwb2BM ベターperlのruby使おうぜとか言いだしそうだな アホか
196デフォルトの名無しさん
2017/07/24(月) 02:59:30.11ID:RBhDn3mI 基本Cで行きたいけど、クロージャが作れないことだけはどうしようもないのでそこだけC++って考えるんだけど、上級C使いはクロージャいらんのだろうか?
197デフォルトの名無しさん
2017/07/24(月) 04:31:31.88ID:rJB0TWtS いらない
198デフォルトの名無しさん
2017/07/24(月) 05:34:01.73ID:L3SJIM9i >>192
あ? 俺はバリバリC++使いだよ
ベターCをやっている認識は全くない
GCの話に型推論が出てくるのは悪いが意味わからん
varが欲しいんならtemplateは関係ない(脇役にすぎない)し
typeidやvoid*で特注品を作ればいい(COMとかみたいに)
ラムダ式もGCには関係ない(脇役にすぎない)し
ステートレスラムダみたいにスタックを使わないのまである
クロージャ変数はヒープ上って何だ?
auto closure{[&]{}};
auto heap{std::make_shared<decltype(closure)>()};
みたいなことすんのか?
ちょっと変態すぎて俺はついていけないなあ
俺はスマポ使うが生ポも普通に使う
状況で使い分けだ
RAIIつまりunwindingはGCとは全く無関係
RAIIだとかpImplだとかは一応知ってるが
そういのの原理主義にとらわれて
自分の頭で考えるのをやめたらいかんと思っている
あ? 俺はバリバリC++使いだよ
ベターCをやっている認識は全くない
GCの話に型推論が出てくるのは悪いが意味わからん
varが欲しいんならtemplateは関係ない(脇役にすぎない)し
typeidやvoid*で特注品を作ればいい(COMとかみたいに)
ラムダ式もGCには関係ない(脇役にすぎない)し
ステートレスラムダみたいにスタックを使わないのまである
クロージャ変数はヒープ上って何だ?
auto closure{[&]{}};
auto heap{std::make_shared<decltype(closure)>()};
みたいなことすんのか?
ちょっと変態すぎて俺はついていけないなあ
俺はスマポ使うが生ポも普通に使う
状況で使い分けだ
RAIIつまりunwindingはGCとは全く無関係
RAIIだとかpImplだとかは一応知ってるが
そういのの原理主義にとらわれて
自分の頭で考えるのをやめたらいかんと思っている
199デフォルトの名無しさん
2017/07/24(月) 07:34:15.05ID:UuUAOyUA RAII は便利なんだがなぁ‥
200デフォルトの名無しさん
2017/07/24(月) 10:04:09.53ID:UK7ErBJ5 >>189
ttp://zdnet2.cbsistatic.com/hub/i/r/2015/12/01/5e3590e7-725a-4d77-97cf-a64768d759a1/resize/1170x878/501ecb90884df8d47e13f80dffc6b0a7/42-53033264.jpg
水銀メモリ程度だろ
ttp://zdnet2.cbsistatic.com/hub/i/r/2015/12/01/5e3590e7-725a-4d77-97cf-a64768d759a1/resize/1170x878/501ecb90884df8d47e13f80dffc6b0a7/42-53033264.jpg
水銀メモリ程度だろ
201デフォルトの名無しさん
2017/07/24(月) 11:30:39.90ID:xutwb2BM202デフォルトの名無しさん
2017/07/24(月) 20:11:23.35ID:Gl5wYMgk >>200
うわかっけぇ〜〜〜〜!!
うわかっけぇ〜〜〜〜!!
203デフォルトの名無しさん
2017/07/24(月) 23:14:38.57ID:8vEBfSZH >>194
俺的には「C++へのかぶれ具合」でC/betterC/C++を判断しようとしてる。
もちろんclassだけではなく、他の機能でも同様に判断して、
どれが一番近いか(どう表現すると一番誤解が少ないか)という話だ。
classはC->C++時におそらく最初に使用する機能であり、
classを使った時点でC++ならbetterCってほぼなくなるよ。
文法でしか判断出来ない馬鹿も最近は多いけど、本質は組み方でしょ。
> クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
知らんよ。
では逆に聞くが、作者やその他大勢がbetterCだと認識している有名OSSってあるのか?
あるのなら、みんなでそれを見に行けば終わる話だ。
なお俺はこれも知らんよ。
V8のコードがC++流じゃないって言っている奴はいるが、俺は詳細確認してないし。
http://steps.dodgson.org/bn/2008/09/07/
俺的には「C++へのかぶれ具合」でC/betterC/C++を判断しようとしてる。
もちろんclassだけではなく、他の機能でも同様に判断して、
どれが一番近いか(どう表現すると一番誤解が少ないか)という話だ。
classはC->C++時におそらく最初に使用する機能であり、
classを使った時点でC++ならbetterCってほぼなくなるよ。
文法でしか判断出来ない馬鹿も最近は多いけど、本質は組み方でしょ。
> クラスとかデストラクタだけ使うみたいな方針で書かれてるソフトって何があるの?
知らんよ。
では逆に聞くが、作者やその他大勢がbetterCだと認識している有名OSSってあるのか?
あるのなら、みんなでそれを見に行けば終わる話だ。
なお俺はこれも知らんよ。
V8のコードがC++流じゃないって言っている奴はいるが、俺は詳細確認してないし。
http://steps.dodgson.org/bn/2008/09/07/
204デフォルトの名無しさん
2017/07/24(月) 23:15:12.97ID:8vEBfSZH >>198
全面マニュアル派か。まあそういう使い方も出来るわな。
俺は嫌いではないよ。
というかC派からは割と賛同されるだろうね。C++派からは異端視されるだろうが。
> クロージャ変数はヒープ上って何だ?
ステートレスとか、キャプチャがなければどうでもいいし、
或いは糖衣とか、ローカル関数っぽく「その場で」使うのなら全く問題ないが、
一般の関数型と同様に可搬的に使おうとすると、生存期間はスタックとは独立にする必要があり、
スタック上の変数を参照キャプチャするのはまずい。
結果、クロージャ内変数の実体はスタック上ではなくヒープに置かれることになる。
これをそう表現した。関数オブジェクトは常にこうだろ。
> RAIIつまりunwindingはGCとは全く無関係
ユーザ側には無関係だが、システム側は密接な関係がある。
GCを効率化する場合、参照カウントというのは一つの代表的手段で、
この場合、ランタイム上で同じことをやるからだ。
だから「全面RAII+shared_ptr」ってのはよく出来たGCと実行効率は同じになる。
だったら最初からGC言語使えよC++erはアホなのか?ってのが俺の感覚だ。
効率ガーとか言いながら完全な二度手間してるのはテメーらだよ、ってこと。
ただし君はこれには該当しない。生ポも普通に使う派だからだ。
まあここら辺の「どうとでも書ける」という懐の広さもC++の魅力ではあるのだろうけども。
本来は君のような全面マニュアル派が正統C++派でもおかしくないんだが。
そういうコンセプトの言語ではあるから。
ただ最近おかしくなっている(気がする)のはやっぱり意識高い系の暴走なのかな?
全面マニュアル派か。まあそういう使い方も出来るわな。
俺は嫌いではないよ。
というかC派からは割と賛同されるだろうね。C++派からは異端視されるだろうが。
> クロージャ変数はヒープ上って何だ?
ステートレスとか、キャプチャがなければどうでもいいし、
或いは糖衣とか、ローカル関数っぽく「その場で」使うのなら全く問題ないが、
一般の関数型と同様に可搬的に使おうとすると、生存期間はスタックとは独立にする必要があり、
スタック上の変数を参照キャプチャするのはまずい。
結果、クロージャ内変数の実体はスタック上ではなくヒープに置かれることになる。
これをそう表現した。関数オブジェクトは常にこうだろ。
> RAIIつまりunwindingはGCとは全く無関係
ユーザ側には無関係だが、システム側は密接な関係がある。
GCを効率化する場合、参照カウントというのは一つの代表的手段で、
この場合、ランタイム上で同じことをやるからだ。
だから「全面RAII+shared_ptr」ってのはよく出来たGCと実行効率は同じになる。
だったら最初からGC言語使えよC++erはアホなのか?ってのが俺の感覚だ。
効率ガーとか言いながら完全な二度手間してるのはテメーらだよ、ってこと。
ただし君はこれには該当しない。生ポも普通に使う派だからだ。
まあここら辺の「どうとでも書ける」という懐の広さもC++の魅力ではあるのだろうけども。
本来は君のような全面マニュアル派が正統C++派でもおかしくないんだが。
そういうコンセプトの言語ではあるから。
ただ最近おかしくなっている(気がする)のはやっぱり意識高い系の暴走なのかな?
205デフォルトの名無しさん
2017/07/24(月) 23:54:33.43ID:gGHXalJd >>203
betterCの定義をしてる機関があるわけじゃないから人それぞれの定義で良いとは思う
俺の認識だとbetterCはC言語をC++モードでコンパイルする程度でもbetterCだと思ってる
#include <stdio.h>
int main(void){
int a = 1000000;
char *b = a;
}
Cだと(昔の寡黙なコンパイラは)そのまま通過。 C++だとエラーで停止。
今は警告出してくれるからこういう意味で使う理由はなくなったんだけどね
(ちなみに、VSで適当にプロジェクト作ると.cppファイルができてC++モードでコンパイルされる)
>classを使った時点でC++ならbetterCってほぼなくなるよ。
betterCってどういう意味合いにせよ現代だと初心者や趣味用で、もうほぼ存在しないってイメージだな
betterCの定義をしてる機関があるわけじゃないから人それぞれの定義で良いとは思う
俺の認識だとbetterCはC言語をC++モードでコンパイルする程度でもbetterCだと思ってる
#include <stdio.h>
int main(void){
int a = 1000000;
char *b = a;
}
Cだと(昔の寡黙なコンパイラは)そのまま通過。 C++だとエラーで停止。
今は警告出してくれるからこういう意味で使う理由はなくなったんだけどね
(ちなみに、VSで適当にプロジェクト作ると.cppファイルができてC++モードでコンパイルされる)
>classを使った時点でC++ならbetterCってほぼなくなるよ。
betterCってどういう意味合いにせよ現代だと初心者や趣味用で、もうほぼ存在しないってイメージだな
206デフォルトの名無しさん
2017/07/25(火) 00:58:02.32ID:4zQ1WqHr void sendMessage(const char *message) {
char c;
for (const char * p = message ; c = *p; p++)
SPI.transfer(c);
}
このようなメソッドを実行する場合、他の単語のアドレスと繋がってバグが出る恐れはありますか?
--例--
const char *cd = "CD";
sendMessage("pen");
アドレス 文字
1000000 p
1000001 e
1000002 n
1000003 C
1000004 D
char c;
for (const char * p = message ; c = *p; p++)
SPI.transfer(c);
}
このようなメソッドを実行する場合、他の単語のアドレスと繋がってバグが出る恐れはありますか?
--例--
const char *cd = "CD";
sendMessage("pen");
アドレス 文字
1000000 p
1000001 e
1000002 n
1000003 C
1000004 D
207デフォルトの名無しさん
2017/07/25(火) 06:46:20.75ID:Ayn2XuQ7208デフォルトの名無しさん
2017/07/25(火) 07:58:05.16ID:HU3ZW3Qs >>204
全面マニュアル派って何だ?
> スタック上の変数を参照キャプチャするのはまずい
え? え??
自動記憶域期間の変数以外の何をキャプチャするんだ?
クロージャ内変数がヒープ?? いったい何を言っている?
struct closure{
int& reference_to_capture;
closure(int* capture) : reference_to_capture(*capture) { }
void operator()() {
int internal_variable_of_closure;
}
};
こうなってるだけだぜ? どこにヒープが出てくるんだ?
全面マニュアル派って何だ?
> スタック上の変数を参照キャプチャするのはまずい
え? え??
自動記憶域期間の変数以外の何をキャプチャするんだ?
クロージャ内変数がヒープ?? いったい何を言っている?
struct closure{
int& reference_to_capture;
closure(int* capture) : reference_to_capture(*capture) { }
void operator()() {
int internal_variable_of_closure;
}
};
こうなってるだけだぜ? どこにヒープが出てくるんだ?
209デフォルトの名無しさん
2017/07/25(火) 07:58:22.10ID:HU3ZW3Qs >>204
> システム側は密接な関係がある。
関係ねえって
some_class obj1;
jmp_buf jb1;
if(setjmp(jb1) == 0) {
obj1.construct(jb1);
some_class obj2;
jmp_buf jb2;
if(setjmp(jb2) == 0) {
obj2.construct(jb2);
obj2.destruct();
}
obj1.destruct();
}
こうなってるだけだぜ? どこにヒープが出てくるんだ?
> 最近おかしくなっている
C++11以後は正気に戻る努力をしてるぞ
> システム側は密接な関係がある。
関係ねえって
some_class obj1;
jmp_buf jb1;
if(setjmp(jb1) == 0) {
obj1.construct(jb1);
some_class obj2;
jmp_buf jb2;
if(setjmp(jb2) == 0) {
obj2.construct(jb2);
obj2.destruct();
}
obj1.destruct();
}
こうなってるだけだぜ? どこにヒープが出てくるんだ?
> 最近おかしくなっている
C++11以後は正気に戻る努力をしてるぞ
210デフォルトの名無しさん
2017/07/25(火) 08:31:48.45ID:M07WjxQ9 知ったかクンの自己弁護ショーがはじまるよ
211デフォルトの名無しさん
2017/07/25(火) 16:02:02.91ID:fB9o/YjK 全面マニュアル派って何だろう。
悪魔的<>全面マニュアル派 みたいなニュアンスなんだろうか。
あんまり聞いたことない言葉だな
悪魔的<>全面マニュアル派 みたいなニュアンスなんだろうか。
あんまり聞いたことない言葉だな
212デフォルトの名無しさん
2017/07/25(火) 17:10:25.77ID:AkzbrYPu <> ダイヤモンド演算子が出たぞ
213デフォルトの名無しさん
2017/07/25(火) 17:24:31.31ID:HU3ZW3Qs <>を何と読むかで、C++寄りかBASIC寄りかわかるな
214デフォルトの名無しさん
2017/07/25(火) 20:09:07.38ID:MNEF+D/W 残念、perl でした!
215デフォルトの名無しさん
2017/07/25(火) 21:09:32.97ID:4zQ1WqHr216デフォルトの名無しさん
2017/07/26(水) 15:57:11.34ID:rrdsxIH3 age
217デフォルトの名無しさん
2017/07/27(木) 03:13:21.18ID:2TFMLUhu >>206
ない。ダブルクォーテーションで括った場合は最後に \0 入るから。
ない。ダブルクォーテーションで括った場合は最後に \0 入るから。
218片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 03:15:50.47ID:vaTNWP9F219デフォルトの名無しさん
2017/07/27(木) 04:24:15.48ID:LmGEOgfS 領域破壊で配列の直後のエリアに入ることは入る
220デフォルトの名無しさん
2017/07/27(木) 07:29:22.91ID:P1js1uXh >>219
宣言時の初期化では入らんよ
宣言時の初期化では入らんよ
221デフォルトの名無しさん
2017/07/27(木) 13:22:08.96ID:HCdXe105 >>219
実名晒せよ、その下痢糞コンパイラ
実名晒せよ、その下痢糞コンパイラ
222デフォルトの名無しさん
2017/07/27(木) 18:39:00.21ID:ZSUs8tWw 素朴な質問で悪いが、C言語ってなんで多くが挫折すんの? JavaやC#なら、派遣でも生き延びていくのに・・・
223片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 19:09:17.24ID:LWV2Yf86 Cは、ポインターとかマクロとか落とし穴が多いんだよね。文字列を扱うのも難しいし。しかもセキュリティ上の欠陥がある。
224デフォルトの名無しさん
2017/07/27(木) 19:15:04.97ID:F0lzbPxl Cにセキュリティ上の欠陥?
使い方の問題でしょ?
使い方の問題でしょ?
225デフォルトの名無しさん
2017/07/27(木) 19:16:27.05ID:F0lzbPxl 大昔に出来た低級言語なんだから、
多少の事は我慢
多少の事は我慢
226デフォルトの名無しさん
2017/07/27(木) 19:17:38.76ID:/VCkXAgy Cは環境依存が激しくて、何やるにもめんどくさいからだと思うな。
コピペプログラマが生きていけない。
コピペプログラマが生きていけない。
227デフォルトの名無しさん
2017/07/27(木) 19:24:01.58ID:pZs9Jdf1 ポインタとかもだけど、リストの使い方は知ってても作り方知らない子とか多そうだぬ。
228デフォルトの名無しさん
2017/07/27(木) 19:25:18.20ID:F0lzbPxl 何のリスト?
初期化リスト?
初期化リスト?
229片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 19:26:56.69ID:LWV2Yf86 連結リストだろ、JK。
230デフォルトの名無しさん
2017/07/27(木) 19:41:55.89ID:F26VGNcc いや連結リストの作り方知らない子はレアだから違うだろJK
231デフォルトの名無しさん
2017/07/27(木) 19:49:40.05ID:pZs9Jdf1 ごめん。
ただの偏見。
JavaやC#はListクラスで連結リスト使えるから、作り方知らない若者多そうって思ってた。
そうかレアか。
安心した。
ただの偏見。
JavaやC#はListクラスで連結リスト使えるから、作り方知らない若者多そうって思ってた。
そうかレアか。
安心した。
232デフォルトの名無しさん
2017/07/27(木) 19:50:41.52ID:tCxrViSf 使い方
って書いてあるから
Cの機能にあるリストだと思ったのだが
って書いてあるから
Cの機能にあるリストだと思ったのだが
233デフォルトの名無しさん
2017/07/27(木) 19:52:12.25ID:tCxrViSf >>227が悪い
234デフォルトの名無しさん
2017/07/27(木) 19:55:40.06ID:pZs9Jdf1235デフォルトの名無しさん
2017/07/27(木) 19:59:03.32ID:tCxrViSf だから
初期化リスト?
って書いたんだけど
初期化リスト?
って書いたんだけど
236デフォルトの名無しさん
2017/07/27(木) 20:11:05.11ID:pZs9Jdf1 初期化リストってなんだろ。。。
あれかな。
int a[] = {1,2,3};
みたいな奴か?
あんなん、数が100とか200になったらループで初期化とかになるから違うかな。
JavaやC#もその辺は変わらなかった気もするけど。
まあいいや。
迷惑かけたみたいだし、ROMるわ。
あれかな。
int a[] = {1,2,3};
みたいな奴か?
あんなん、数が100とか200になったらループで初期化とかになるから違うかな。
JavaやC#もその辺は変わらなかった気もするけど。
まあいいや。
迷惑かけたみたいだし、ROMるわ。
237デフォルトの名無しさん
2017/07/27(木) 20:28:21.83ID:DDfF3pSC >>222
C言語は同じことをするのにもいろんな書き方ができる。無駄に難しくも書ける。
C言語は同じことをするのにもいろんな書き方ができる。無駄に難しくも書ける。
238デフォルトの名無しさん
2017/07/27(木) 21:58:49.46ID:HCdXe105 セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
セキュリティ上の欠陥がある。
239デフォルトの名無しさん
2017/07/27(木) 22:01:29.56ID:DDfF3pSC240デフォルトの名無しさん
2017/07/27(木) 22:02:42.86ID:DDfF3pSC >>238
それ、欠陥じゃなくてそこまで理解して使用するものだから。本気で言ってんの?
それ、欠陥じゃなくてそこまで理解して使用するものだから。本気で言ってんの?
241デフォルトの名無しさん
2017/07/27(木) 22:09:44.77ID:HCdXe105 リーナス君ならどんな暴言吐いてくだろうかね
242デフォルトの名無しさん
2017/07/27(木) 22:10:30.95ID:P8zzUyc0 リストの「作り方」って書いてあるのに初期化リストを持ってくる奴ってマジで近くにいてほしくないわ
243デフォルトの名無しさん
2017/07/27(木) 22:20:24.47ID:KBJFSsyK >>241
リーナスくんがメビウスに暴言?
リーナスくんがメビウスに暴言?
244片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 22:22:40.74ID:LWV2Yf86 拳銃は危ないよなあ。原子炉の制御にC言語を使われたら、それは拳銃のように危ない。
Cを安全に使うには、安全装置とか哲学とか人工知能みたいなものが必要になる。
さもないとどこかの国みたいにハッキングされるだろう。
Cを安全に使うには、安全装置とか哲学とか人工知能みたいなものが必要になる。
さもないとどこかの国みたいにハッキングされるだろう。
245デフォルトの名無しさん
2017/07/27(木) 22:31:06.10ID:KBJFSsyK246デフォルトの名無しさん
2017/07/27(木) 22:34:40.88ID:pZs9Jdf1247デフォルトの名無しさん
2017/07/27(木) 22:40:41.83ID:tCxrViSf >>242
日本語読めないアホ
日本語読めないアホ
248片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 22:41:49.10ID:LWV2Yf86 あ、「C言語にセキュリティ上の欠陥がある」は、国家機密だからな。絶対に他のヤツに言うなよ。
249デフォルトの名無しさん
2017/07/27(木) 22:42:44.02ID:tCxrViSf ツマンネ
250デフォルトの名無しさん
2017/07/27(木) 22:43:40.04ID:HCdXe105251デフォルトの名無しさん
2017/07/27(木) 22:52:42.24ID:9W3wkZQm252片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 22:56:04.01ID:LWV2Yf86 ダンディ坂野は危険。sprintfの代わりにsnprintf使え。セキュアバージョン(_s)を使え。とか色々あるよな。
253デフォルトの名無しさん
2017/07/27(木) 23:06:09.60ID:wZCn8yX+ (σ・∀・)σゲッツ!!
254片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 23:13:00.42ID:LWV2Yf86255片山博文MZ ◆T6xkBnTXz7B0
2017/07/27(木) 23:41:43.77ID:LWV2Yf86 標準文字列関数では安全に書けない、安全に書ける人がほとんど居ない。これ、完全にワナですから。
256デフォルトの名無しさん
2017/07/27(木) 23:57:39.95ID:jhYwQkxC バッファのサイズに収まるように普通書くだろ
そう書けない奴が悪い
そう書けない奴が悪い
257デフォルトの名無しさん
2017/07/28(金) 00:08:15.50ID:YMdBIxtz >>256
それはその通りだけど、個人が責任を取れる問題じゃないし。
それはその通りだけど、個人が責任を取れる問題じゃないし。
258デフォルトの名無しさん
2017/07/28(金) 00:14:30.22ID:QdICXo3Y >>218
そうだった。Cだとエラーにならんな。C++だとエラー。
そうだった。Cだとエラーにならんな。C++だとエラー。
259片山博文MZ ◆T6xkBnTXz7B0
2017/07/28(金) 00:19:41.65ID:N/JNnipJ 文字列の連結だって安全にやろうとすれば、長さがわからない文字列にstrcatなんて使えないじゃん。
260デフォルトの名無しさん
2017/07/28(金) 00:33:30.49ID:QdICXo3Y てきとーに char s[1000]; とかやってどんどん strcat()
そして死亡
そして死亡
261デフォルトの名無しさん
2017/07/28(金) 00:47:30.46ID:KKFlk4xh Cでは適当な奴は死にます
262デフォルトの名無しさん
2017/07/28(金) 02:06:17.70ID:zRJpQFXf 1ビットの変数同士を比較する場合
& ビット演算子
&& 論理演算子
どっち使った方がいいの?
---例---
input mem_ack, cpu_ack
wire mem_ack, cpu_ack
:
:
if (~(mem_ack & cpu_ack))
state <= 2
--------
& ビット演算子
&& 論理演算子
どっち使った方がいいの?
---例---
input mem_ack, cpu_ack
wire mem_ack, cpu_ack
:
:
if (~(mem_ack & cpu_ack))
state <= 2
--------
263デフォルトの名無しさん
2017/07/28(金) 02:08:50.20ID:uZDKFvFZ264デフォルトの名無しさん
2017/07/28(金) 06:32:14.27ID:X5sNiV59265デフォルトの名無しさん
2017/07/28(金) 06:51:58.94ID:jwLN5n78266デフォルトの名無しさん
2017/07/28(金) 10:25:49.30ID:X5sNiV59 おいVerilog使い、なぜここに来た?
267デフォルトの名無しさん
2017/07/28(金) 10:43:31.58ID:KAkdfNJb Cスレでは初期化リストは「書く」とか「記述」するものであって「作る」ものじゃ無いな
ツールやマクロで生成したり作ったりする事はあるが、そう言うまれな場合は「マクロで作る」と書くだろう
ツールやマクロで生成したり作ったりする事はあるが、そう言うまれな場合は「マクロで作る」と書くだろう
268デフォルトの名無しさん
2017/07/28(金) 10:54:04.18ID:g6yGf319269デフォルトの名無しさん
2017/07/28(金) 11:13:16.53ID:WViVOgsq270デフォルトの名無しさん
2017/07/28(金) 12:35:43.09ID:WvgdGCet271デフォルトの名無しさん
2017/07/28(金) 12:42:15.76ID:WViVOgsq C言語と関係ない
272デフォルトの名無しさん
2017/07/28(金) 13:28:06.90ID:KAkdfNJb 文法上でリストと呼ばれているものは初期化リストの他にもたくさんあるぞ
一々あげないが、パラメータリストとか
一々あげないが、パラメータリストとか
273デフォルトの名無しさん
2017/07/28(金) 15:09:08.59ID:1Qvc81q6 va_listなら頑張れば作れる
274デフォルトの名無しさん
2017/07/28(金) 16:20:09.34ID:WViVOgsq >>272
で?
で?
275デフォルトの名無しさん
2017/07/28(金) 16:32:13.65ID:KAkdfNJb ID:tCxrViSfが救いようの無いバカって事だよ
277デフォルトの名無しさん
2017/07/28(金) 18:49:21.90ID:XBSdfIgC 連結リストを一から作れるってそんなにいないんじゃないかな
278デフォルトの名無しさん
2017/07/28(金) 18:55:04.96ID:mbT3OJMo 1からの定義というか
0からではないんだよね?というか
まぁそのへんフワフワだけど
学校でプログラミング習ってるやつらは
一回はそれ「作らされてるから」
今でも作れって言われたら作れると思う
0からではないんだよね?というか
まぁそのへんフワフワだけど
学校でプログラミング習ってるやつらは
一回はそれ「作らされてるから」
今でも作れって言われたら作れると思う
279デフォルトの名無しさん
2017/07/28(金) 19:06:21.61ID:mbT3OJMo あ、今の子はPascalとかCとか習わないのかな…
280デフォルトの名無しさん
2017/07/28(金) 19:09:55.81ID:qWRZaL/E >>272
で、それらの「作り方」について説明してくれるかな w
で、それらの「作り方」について説明してくれるかな w
281デフォルトの名無しさん
2017/07/28(金) 19:14:48.96ID:0EVBlpnp 脱初心者の登竜門の定番だね
自己参照構造体とポインタを理解していればそれほど難しくはない
自己参照構造体とポインタを理解していればそれほど難しくはない
282デフォルトの名無しさん
2017/07/28(金) 19:17:50.96ID:LlfbS2K5 えちょっと待ってジェネリックなリストとかじゃなくて、doubleのリストとか、なんか自分で決めた型のリストとかだよね?
初心者向けのCの本で書いた記憶があるんだけど、最近は載ってないの?
初心者向けのCの本で書いた記憶があるんだけど、最近は載ってないの?
283デフォルトの名無しさん
2017/07/28(金) 19:21:50.85ID:/bI4c4xS 苦CとやさしいCには載ってなかったな。
自分もCのアルゴリズム本でリストは覚えたし。
自分もCのアルゴリズム本でリストは覚えたし。
284デフォルトの名無しさん
2017/07/28(金) 19:32:08.21ID:WViVOgsq ジェネリックなリストとdoubleのリストって
ほとんど差が無いような
ほとんど差が無いような
285デフォルトの名無しさん
2017/07/28(金) 20:00:04.70ID:xox6mhpi >>279
やらないよ
やらないよ
286デフォルトの名無しさん
2017/07/28(金) 20:04:12.64ID:qWRZaL/E >>277
struct List_t {
struct List_t *Previous;
struct List_t *Next;
double Data;
};
のDataの型変えるだけだし
まあいろんな型が必要だとテンプレートが欲しくなるけどマクロでもそこそこ行けるしね
struct List_t {
struct List_t *Previous;
struct List_t *Next;
double Data;
};
のDataの型変えるだけだし
まあいろんな型が必要だとテンプレートが欲しくなるけどマクロでもそこそこ行けるしね
287デフォルトの名無しさん
2017/07/28(金) 20:06:39.62ID:+MWeEFjB 初心者に双方向はまずいですよ。
288デフォルトの名無しさん
2017/07/28(金) 20:06:46.98ID:SfCHZxYK そこはテンプレートが遅くなる要因だから、性格の違いって事で。
289デフォルトの名無しさん
2017/07/28(金) 20:12:26.13ID:xox6mhpi >>286
普通,実用に供するのならば,void *Data だね
普通,実用に供するのならば,void *Data だね
290デフォルトの名無しさん
2017/07/28(金) 20:21:38.71ID:SfCHZxYK 型検査引っ掛からなくなるんだから、実用なら必要な型でリスト作らんと怖いだろ。
元々かっちり作る用途向けで、そう言うのはどうしてもって時だけ。
元々かっちり作る用途向けで、そう言うのはどうしてもって時だけ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★3 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★2 [冬月記者★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★2 [蚤の市★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ ★2 [Hitzeschleier★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★5 [Hitzeschleier★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 「ハイブリッド教科書」でこの国の子どもたちの視力悪化へ… アクセスしてみると映るコンピュータースクリーンの中、チカチカしてる文字 [452836546]
- 竹中平蔵「日米が長年守り続けてき台湾有事に関する曖昧戦略の知恵を一瞬にして無にさせた岡田の責任は非常に重い」 [271912485]
- 肌黒グロマグロ
- お前ら無職にはわからんだろうけど国保高すぎだろ
- 嘘喰い作者「高市総理の自分の命自分で守れ発言を叩いてる左翼、しょーもな!!!」 [935793931]
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
