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://echo.2ch.net/test/read.cgi/tech/1487757355/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 140 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8c-8ulf)
2017/05/11(木) 22:20:03.99ID:cn414UR90966デフォルトの名無しさん (ワッチョイ c832-MRQN)
2017/07/17(月) 17:54:54.48ID:+Y9zLnEF0 ならんと思うし、解決済みだぞ
967デフォルトの名無しさん (ワッチョイ df23-S4qQ)
2017/07/17(月) 18:06:17.25ID:6JtF0HSC0 >>959
まあそれで見やすくなるだろうから、そういうCを拡張した新しい言語作れば良い。
しかし、問題はC(あるいはそこからちょっとしか拡張されていないような言語)を
人間が直接使う機会はおそらく減り続けることにある。今でもほとんどOSや
デバイスドライバを記述するアセンブラ代わり
まあそれで見やすくなるだろうから、そういうCを拡張した新しい言語作れば良い。
しかし、問題はC(あるいはそこからちょっとしか拡張されていないような言語)を
人間が直接使う機会はおそらく減り続けることにある。今でもほとんどOSや
デバイスドライバを記述するアセンブラ代わり
968デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 18:07:19.84ID:g3mBUieLd969デフォルトの名無しさん (ワッチョイ df23-S4qQ)
2017/07/17(月) 18:07:38.79ID:6JtF0HSC0 あ、ごめん。途中で送信しちゃった。
つづき。
↓
に使われてるしね。
つづき。
↓
に使われてるしね。
970デフォルトの名無しさん (ワッチョイ 386f-bO6O)
2017/07/17(月) 18:40:56.88ID:IbKZMmLs0 関数内関数って要するに高階関数のことだろ
関数型言語または関数型のマルチパラダイムの言語でないと無理だろ
関数型言語または関数型のマルチパラダイムの言語でないと無理だろ
971デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 18:46:26.39ID:PKmAGp8M0 Objective-Cで全部可能ではある
C言語でもclangならblocks拡張(関数オブジェクト・クロージャ)が使える
関数内関数は単純に制御構造だと捉えれば、C言語でもgoto文で可能でしょう
C言語でもclangならblocks拡張(関数オブジェクト・クロージャ)が使える
関数内関数は単純に制御構造だと捉えれば、C言語でもgoto文で可能でしょう
972デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 18:54:16.64ID:g3mBUieLd Blocks拡張は有能なのは分かってるけど、Clang依存コードになるからちょいとハードル高いよなあ
973デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/17(月) 18:59:20.24ID:woO8V6Ze0 >>948
いやコンパイラにとって初見の識別子があとで宣言される
という形になっているコードについて話しているのは
みんなわかってるのに、頓珍漢な言葉遊びに持ち込もうと
している邪魔な奴がおまえだ
> Cはそれが作法になってるだろ
はあ? 聞いたこともねえぜ、寝言は寝てぬかせ
横着しねえでちゃんとプロトタイプ宣言すんだよ
正直たまにサボることがあるのを恥もせずに
それがスタンダードとか居直るおまえの態度が鼻持ちならん
いやコンパイラにとって初見の識別子があとで宣言される
という形になっているコードについて話しているのは
みんなわかってるのに、頓珍漢な言葉遊びに持ち込もうと
している邪魔な奴がおまえだ
> Cはそれが作法になってるだろ
はあ? 聞いたこともねえぜ、寝言は寝てぬかせ
横着しねえでちゃんとプロトタイプ宣言すんだよ
正直たまにサボることがあるのを恥もせずに
それがスタンダードとか居直るおまえの態度が鼻持ちならん
974デフォルトの名無しさん (ワッチョイ 6e9a-n9U6)
2017/07/17(月) 19:03:14.17ID:30YqlFLH0 ヘッダにはプロトタイプ宣言を書くだろうに
なんでプロトタイプ宣言をなかったことにしたがるのだろうか?
なんでプロトタイプ宣言をなかったことにしたがるのだろうか?
975デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 19:03:27.54ID:PKmAGp8M0976デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 19:17:54.83ID:g3mBUieLd977デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 19:25:58.36ID:PKmAGp8M0 >>976
いやコールバック関数のポインタ渡しで代替だからw 別に関数書く必要はあるよ
blocksみたいに、同じスコープにコールバックの処理も書けちゃうっていう便利さは無い
環境のキャプチャもしたければ、値のコピーをヒープに確保してコールバック側でfreeとか、
工夫すればできるでしょう
いやコールバック関数のポインタ渡しで代替だからw 別に関数書く必要はあるよ
blocksみたいに、同じスコープにコールバックの処理も書けちゃうっていう便利さは無い
環境のキャプチャもしたければ、値のコピーをヒープに確保してコールバック側でfreeとか、
工夫すればできるでしょう
978デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 19:43:36.29ID:g3mBUieLd うーむわかりた。やっぱ別に書いた関数を呼ぶのがせいぜいよなあ
せめて関数オブジェクトがあればなあとたまに思うわ
せめて関数オブジェクトがあればなあとたまに思うわ
979デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 19:45:22.30ID:U2FIHXXv0980デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 19:47:31.91ID:U2FIHXXv0981デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 19:59:04.53ID:PKmAGp8M0982デフォルトの名無しさん (ワッチョイ 386f-/Dy+)
2017/07/17(月) 20:24:44.55ID:IbKZMmLs0 関数の内部で関数を定義するようなイメージじゃないの?
C言語では不可能だけど
void functionA(void) {
…
void functionB(void) {
…
void functionC(void) {
…
}
}
}
C言語では不可能だけど
void functionA(void) {
…
void functionB(void) {
…
void functionC(void) {
…
}
}
}
983デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 20:31:06.71ID:U2FIHXXv0984デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 21:01:30.74ID:LYlgQVUQ0 >>963
> トランポリンコード
なんだそりゃ?と思ったらこれか。
http://d.hatena.ne.jp/yupo5656/20040602/p1
なるほどGCCのは単なる階層ではなく、プチグローバル付きか。
この仕様なら上位階層(ファイル)を記述変更無しで取り込めるが、
これは確かに標準化には微妙だな。俺はGCCの仕様を詳しく知らんかった。すまんね。
しかしこれ、C++のメンバ関数ポインタみたいに、
普通の関数ポインタと相互運用することは諦めてしまっても良かった気もするが、
それだとレガシーとは相性が悪い。微妙なところだね。
> トランポリンコード
なんだそりゃ?と思ったらこれか。
http://d.hatena.ne.jp/yupo5656/20040602/p1
なるほどGCCのは単なる階層ではなく、プチグローバル付きか。
この仕様なら上位階層(ファイル)を記述変更無しで取り込めるが、
これは確かに標準化には微妙だな。俺はGCCの仕様を詳しく知らんかった。すまんね。
しかしこれ、C++のメンバ関数ポインタみたいに、
普通の関数ポインタと相互運用することは諦めてしまっても良かった気もするが、
それだとレガシーとは相性が悪い。微妙なところだね。
985デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 21:03:30.21ID:PKmAGp8M0 >>983
俺が言ってるのは、Cでは同じようには書けないが同じ処理はできるってことだよ
俺が言ってるのは、Cでは同じようには書けないが同じ処理はできるってことだよ
986デフォルトの名無しさん (ワッチョイ ce6f-9g51)
2017/07/17(月) 21:07:34.37ID:J4JGo3XO0987デフォルトの名無しさん (ワッチョイ d091-z+eH)
2017/07/17(月) 21:16:05.25ID:dzhRVtEN0 おっつおっつ
988デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 21:20:55.01ID:LYlgQVUQ0 >>967,969
チョイ拡張言語ってのはエコシステムが付いてこず勝手に死ぬ。
Dもだし、Objective-CはAppleに拾ってもらえたけど、もう確実に死ぬ運命だよね。
(あれらはチョイ拡張でもないが)
チョイ拡張だとわざわざCから移行する意味が無いんだよ。
理想的にはやっぱ標準に入ってくれないと辛いわ。
Cが死に行く、って指摘については、俺もそう思っていたのだが、
何度も言っているが最近Cスタイルの他言語コードを見てちょっと考えを改めつつある。
OOPのコードは結構真面目に追いかけないと辛くて、読みやすくはない。
これはCも同様だと思っていたのだが、実はCの読みにくさは「階層」と「後方参照」がないだけで、
(つまりファイルがバラバラで、しかもグダグダな順に書かれているからであって《=プチ難読化済》)
構造的に問題があるわけではなく、それなりに読みやすいことに気づいた。
だからこれらがある言語(Python以外の新しい言語全部)でCスタイル(手続き型)で書かれたコードは
実はかなり読みやすいのだと思う。
(問題は、そういうのにあまり遭遇しないことだが)
だからC自体は廃れるかもしれないけど、Cスタイルは多分廃れない。
そして今のところ手続き型万歳的な言語はCだけだ。
となると、Cに足りない上記、「階層」「後方参照」が入ればCってもう一回来るかも?とも思う。
(つか、namespaceすら入れないって何よ?とは思うよマジで)
>>986
乙
チョイ拡張言語ってのはエコシステムが付いてこず勝手に死ぬ。
Dもだし、Objective-CはAppleに拾ってもらえたけど、もう確実に死ぬ運命だよね。
(あれらはチョイ拡張でもないが)
チョイ拡張だとわざわざCから移行する意味が無いんだよ。
理想的にはやっぱ標準に入ってくれないと辛いわ。
Cが死に行く、って指摘については、俺もそう思っていたのだが、
何度も言っているが最近Cスタイルの他言語コードを見てちょっと考えを改めつつある。
OOPのコードは結構真面目に追いかけないと辛くて、読みやすくはない。
これはCも同様だと思っていたのだが、実はCの読みにくさは「階層」と「後方参照」がないだけで、
(つまりファイルがバラバラで、しかもグダグダな順に書かれているからであって《=プチ難読化済》)
構造的に問題があるわけではなく、それなりに読みやすいことに気づいた。
だからこれらがある言語(Python以外の新しい言語全部)でCスタイル(手続き型)で書かれたコードは
実はかなり読みやすいのだと思う。
(問題は、そういうのにあまり遭遇しないことだが)
だからC自体は廃れるかもしれないけど、Cスタイルは多分廃れない。
そして今のところ手続き型万歳的な言語はCだけだ。
となると、Cに足りない上記、「階層」「後方参照」が入ればCってもう一回来るかも?とも思う。
(つか、namespaceすら入れないって何よ?とは思うよマジで)
>>986
乙
989デフォルトの名無しさん (ワッチョイ f2ea-S4qQ)
2017/07/17(月) 21:22:41.43ID:n17oqQVv0 Pythonがプロトタイプ宣言の必要のないC言語と言ってるバカがいるのはこのスレですか?
990デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 21:30:16.49ID:LYlgQVUQ0 >>973
全部書くのがお前のジャスティスならそうすりゃいいし、
実際そっちが主流かもしれん。
しかしヘッダファイルを用意するなんて完全に二度手間だし、
コンパイラが自動的にやれよマジで、と思ったことは無いのか?
コンパイル時間が気になるのなら、ヘッダファイルを用意しろ、
面倒ならなしでよし、その場合はコンパイラが勝手に探してくる、
その分コンパイル時間はかかるが手間が省ける、って仕様で何も問題ないだろ。
てか他言語は全部そうだし。(Python除く)
俺はあの仕様がいまだに残っており、
また、お前みたいに疑問を持ってない奴がいることがよく分からん。
全部書くのがお前のジャスティスならそうすりゃいいし、
実際そっちが主流かもしれん。
しかしヘッダファイルを用意するなんて完全に二度手間だし、
コンパイラが自動的にやれよマジで、と思ったことは無いのか?
コンパイル時間が気になるのなら、ヘッダファイルを用意しろ、
面倒ならなしでよし、その場合はコンパイラが勝手に探してくる、
その分コンパイル時間はかかるが手間が省ける、って仕様で何も問題ないだろ。
てか他言語は全部そうだし。(Python除く)
俺はあの仕様がいまだに残っており、
また、お前みたいに疑問を持ってない奴がいることがよく分からん。
991デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 21:39:14.19ID:LYlgQVUQ0 >>989
× Pythonがプロトタイプ宣言の必要のない
○ Pythonはプロトタイプ宣言が出来ない
○ JavaScriptはプロトタイプ宣言が必要ない
何度も言っているがこれだけでPythonは糞だと断定できる。
一番わかりやすい順に記述出来ない時点で糞。
ただしPythonってのは元々そういう言語。ユーザの自由を認めていない。
で、俺はマジでPythonに関わるつもり無いからもう止めて。
Python信者が発狂しているし。俺自身Python知らんし。
× Pythonがプロトタイプ宣言の必要のない
○ Pythonはプロトタイプ宣言が出来ない
○ JavaScriptはプロトタイプ宣言が必要ない
何度も言っているがこれだけでPythonは糞だと断定できる。
一番わかりやすい順に記述出来ない時点で糞。
ただしPythonってのは元々そういう言語。ユーザの自由を認めていない。
で、俺はマジでPythonに関わるつもり無いからもう止めて。
Python信者が発狂しているし。俺自身Python知らんし。
992デフォルトの名無しさん (スプッッ Sd70-Cvl0)
2017/07/17(月) 21:41:38.75ID:nYhUL1Kkd 最強はアセンブリ言語
993デフォルトの名無しさん (ワッチョイ ce7f-z+eH)
2017/07/17(月) 21:43:34.50ID:iqtGzeji0 一元管理と二重チェック、共存はできないが一概にどちらが優れていると決めつけられるものでもないなぁ。
994デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 21:45:43.44ID:U2FIHXXv0995デフォルトの名無しさん (アウアウカー Sa0a-S4qQ)
2017/07/17(月) 21:46:23.02ID:/QULOYxMa >>990
いや、何も無理してC使う必要はないんだよ。なんだったら新言語作ればいい。
bison, flex (yacc, lex) があるわけだし。
で、比較的楽に言語を作る方法は、C言語へのコンバータにしてしまうことだ。
そうするとかなり多くの環境で動くものがいきなりできる。
C++も最初の頃はそうだった。
いや、何も無理してC使う必要はないんだよ。なんだったら新言語作ればいい。
bison, flex (yacc, lex) があるわけだし。
で、比較的楽に言語を作る方法は、C言語へのコンバータにしてしまうことだ。
そうするとかなり多くの環境で動くものがいきなりできる。
C++も最初の頃はそうだった。
996デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 21:49:21.75ID:U2FIHXXv0 >>991
知らないのに糞とかアホすぎる w
知らないのに糞とかアホすぎる w
997デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 21:49:44.33ID:U2FIHXXv0 うめ
998デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 21:50:16.71ID:U2FIHXXv0 うめ
999デフォルトの名無しさん (ドコグロ MM46-OTuW)
2017/07/17(月) 21:51:40.93ID:qENq84dkM >>991
バカは何度指摘してもバカのままなんだな
バカは何度指摘してもバカのままなんだな
1000デフォルトの名無しさん (ワッチョイ f2ea-S4qQ)
2017/07/17(月) 21:51:49.33ID:n17oqQVv0 >>990
1ソースコードファイル1オブジェクトファイルだからそういう仕様なんだよ
1ソースコードファイル1オブジェクトファイルだからそういう仕様なんだよ
10011001
Over 1000Thread このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 66日 23時間 31分 46秒
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 66日 23時間 31分 46秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 【高市核兵器】 小泉コメ防衛大臣「民主党政権 岡田外務大臣の “非核三原則” に関する国会答弁を引き継いでいる」 政策堅持を明言 [485983549]
- 【高市賃上げ】 自民党&維新の会「国会議員の給与を 月5万円アップさせる!」 今国会で歳費法改正。 月129万円→月134万円に [485983549]
- 青髭がない男がいたんですよ~
- 【速報】NVIDIA超好決算!株価爆上げへ [271912485]
- 【速報】2025プロ野球の流行語トップ30が発表される
- ㊗157円 [194819832]
