!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C2x ドラフト
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2731.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言語なら俺に聞け 158
https://mevius.5ch.net/test/read.cgi/tech/1640401906/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 159
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワンミングク MMa2-RRwJ)
2022/08/04(木) 23:32:27.83ID:yWVViPyIM2はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/08/04(木) 23:46:06.88ID:hPtMGH660 現時点んでの C2x 最新ドラフトはこっち
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2912.pdf
3デフォルトの名無しさん (ワッチョイ 7a63-Jv5Y)
2022/08/04(木) 23:50:16.33ID:nIz8Ddm70 訂正ありがとう
4デフォルトの名無しさん (ワッチョイ 13a5-wg88)
2022/08/08(月) 01:13:34.41ID:/9Y6mnF30 n3047がC23の投票に掛けられる模様
5はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d13e-woMg)
2022/08/08(月) 01:16:49.11ID:JJ3NlnG00 おっ、こないだの会議の結果が反映されたドラフトが出てたのか。
6デフォルトの名無しさん (ワッチョイ 45bb-5Ix7)
2022/08/13(土) 08:01:13.53ID:2Qk1ejrP0 配列の初期化に変数使えるのはGCC拡張ってマジか・・・
これ↓
int arr[3] = { a, b, c };
知らなかった・・・
これ↓
int arr[3] = { a, b, c };
知らなかった・・・
7デフォルトの名無しさん (ワッチョイ 45bb-5Ix7)
2022/08/13(土) 08:05:10.38ID:2Qk1ejrP08はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/13(土) 09:53:55.13ID:RGh4OO0V0 >>6-7
言語仕様を確認してみたら、変数が静的記憶域期間を持つときは
初期化子に現れる全ての式が定数式でなければならない (変数を含められない) という制限はある。
自動記憶域期間なら初期化子に変数を使っても問題ない。
GCC でもそのような挙動になる。
言語仕様を確認してみたら、変数が静的記憶域期間を持つときは
初期化子に現れる全ての式が定数式でなければならない (変数を含められない) という制限はある。
自動記憶域期間なら初期化子に変数を使っても問題ない。
GCC でもそのような挙動になる。
9デフォルトの名無しさん (スッップ Sd62-arFQ)
2022/08/13(土) 09:54:36.52ID:F6UXSz0Jd >>6
staticやグローバルにすると・・・
staticやグローバルにすると・・・
10はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/13(土) 10:02:52.43ID:RGh4OO0V0 関連する挙動を色々と試してたんだけど、
GCC では const 付きの変数の挙動が少し C++ 寄りに拡張されているっぽい。
C++ では const 付き変数の初期化子が定数式である場合にはその変数も定数式になるが、
C では単に代入できない変数という扱いのはずなんだけど、
GCC では定数式っぽい振る舞いをする場合がある (全面的に定数式扱いというわけではない) ように見える。
GCC では const 付きの変数の挙動が少し C++ 寄りに拡張されているっぽい。
C++ では const 付き変数の初期化子が定数式である場合にはその変数も定数式になるが、
C では単に代入できない変数という扱いのはずなんだけど、
GCC では定数式っぽい振る舞いをする場合がある (全面的に定数式扱いというわけではない) ように見える。
11デフォルトの名無しさん (スッププ Sd62-bA8F)
2022/08/13(土) 17:52:01.55ID:D+zbBXbXd >>9
それが静的記憶域っちゅうこっちゃがなーー
それが静的記憶域っちゅうこっちゃがなーー
12デフォルトの名無しさん (スッップ Sd62-arFQ)
2022/08/13(土) 20:18:21.81ID:F6UXSz0Jd >>11
だからそれを言ってる
だからそれを言ってる
13デフォルトの名無しさん (スッププ Sd62-bA8F)
2022/08/14(日) 00:23:10.64ID:yTFzwOo0d もう>>8に書いてあるじゃん
14デフォルトの名無しさん (ワッチョイ 45bb-5Ix7)
2022/08/14(日) 00:37:06.28ID:E4oXLohw0 あーなるほどstaticかぁ
お前らありがとん
お前らありがとん
15デフォルトの名無しさん (スッップ Sd62-arFQ)
2022/08/14(日) 08:08:18.99ID:BqkowVN+d K&R Cでは配列の初期化子にも同様の制限があって
その理由は合理的だった
その後ある事情で無理が通って道理が引っ込んだ
その理由は合理的だった
その後ある事情で無理が通って道理が引っ込んだ
16デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/14(日) 11:44:40.04ID:VI2zLni0a staticには意味が複数あるのがC言語の挫折ポイントのひとつ
17はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/14(日) 12:08:31.19ID:vdIvBFYd0 予約語を増やさないという方針自体は互換性を損なわないために真っ当なものだと思うけど、
名前がかぶったら単に一括置換で対処できる程度のことでもあるしなぁ……。
名前がかぶったら単に一括置換で対処できる程度のことでもあるしなぁ……。
18デフォルトの名無しさん (アウアウウー Saa5-8lLW)
2022/08/14(日) 12:20:02.25ID:1rNkdimaa >>16
そんなので挫折するならもっと前に挫折するだろw
そんなので挫折するならもっと前に挫折するだろw
19デフォルトの名無しさん (ワッチョイ 4263-5Ix7)
2022/08/14(日) 12:34:09.99ID:+OkjgujJ0 挫折自慢大会が開催されました
20ハノン ◆QZaw55cn4c (ワッチョイ 41e6-U0U7)
2022/08/14(日) 13:14:34.32ID:GttZqyyI0 Scheme 手習い、を挫折しました、いつ再トライしようかしら?
21はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/14(日) 15:10:21.65ID:vdIvBFYd0 自分の性分に合ったものは気合いを入れなくても割とスルっと出来ちゃったりするし、
そういうところから周りに広げていく形でやってけばいいんでないかな。
業務で必要とかならそうも言っておれんだろうけど。
そういうところから周りに広げていく形でやってけばいいんでないかな。
業務で必要とかならそうも言っておれんだろうけど。
22デフォルトの名無しさん (ワッチョイ 42ad-9bk+)
2022/08/14(日) 16:55:08.09ID:YzvfyuVN0 Kotlinもよろしく
23デフォルトの名無しさん (ワッチョイ 9901-oUG4)
2022/08/14(日) 17:14:45.00ID:b9F5IowR0 完全な文脈自由文法で設計されていれば、コンパイラも簡単に作れるけどな。
しかし、Javaのその特性は完全に無視され、誰にも気づかれなかった。
お前らも気づいていない。
しかし、Javaのその特性は完全に無視され、誰にも気づかれなかった。
お前らも気づいていない。
24はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/14(日) 21:52:34.16ID:vdIvBFYd0 構文解析だけ簡単でもコンパイラが簡単なわけではないが……。
部分的にでも簡単であるに越したことは無いけどさ。
部分的にでも簡単であるに越したことは無いけどさ。
25デフォルトの名無しさん (スッププ Sd62-bA8F)
2022/08/15(月) 06:53:02.58ID:m+99U1QQd いや宣言文→実行部のように決まっている文脈ガチガチのほうがコンパイラは作りやすい
26デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 08:31:44.94ID:zxOEKBbO0 今時字句解析とか構文解析で難しいとかないでしょ
それなりのツールもあるからBNF書ければ自動生成できたりするし
それなりのツールもあるからBNF書ければ自動生成できたりするし
27はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 09:21:08.58ID:DfKndVH3028デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 09:27:22.60ID:zxOEKBbO0 >>27
難しいって一体どんな言語仕様を想定してるんだ?w
難しいって一体どんな言語仕様を想定してるんだ?w
30デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 10:35:55.74ID:zxOEKBbO031はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 11:11:29.28ID:DfKndVH30 >>30
今の主要なプログラミング言語はそう (処理段階の分離が極端に難しい仕様には) ならなかったという話をしてる。
だから昔のものから例になりそうなものを抽出しただけで、この頃の知見のまま設計された大きな言語があったら
現代的なツールでも扱いにくいだろうということ。
今の主要なプログラミング言語はそう (処理段階の分離が極端に難しい仕様には) ならなかったという話をしてる。
だから昔のものから例になりそうなものを抽出しただけで、この頃の知見のまま設計された大きな言語があったら
現代的なツールでも扱いにくいだろうということ。
32デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 11:28:00.05ID:zxOEKBbO033はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/15(月) 11:39:32.94ID:DfKndVH3034デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 12:01:53.74ID:zxOEKBbO0 >>33
そもそもFORTRAN77以前でも
DO 100 I = 1. 5
なんて言う「代入文」を書く奴なんてほとんどいなかったわけで知見が確立しないまま言語仕様だけでかくなるとかまずありえんわ
まあ妄想に浸りたいだけなら勝手にやっててくださいな
そもそもFORTRAN77以前でも
DO 100 I = 1. 5
なんて言う「代入文」を書く奴なんてほとんどいなかったわけで知見が確立しないまま言語仕様だけでかくなるとかまずありえんわ
まあ妄想に浸りたいだけなら勝手にやっててくださいな
35デフォルトの名無しさん (ワッチョイ 0297-LcF5)
2022/08/15(月) 12:48:46.30ID:RzREpsfh0 ほとんどいない笑
たまにはいたんですね?
たまにはいたんですね?
36デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 13:28:30.95ID:zxOEKBbO037デフォルトの名無しさん (ワッチョイ 06ad-Lyl8)
2022/08/16(火) 10:07:24.32ID:6bNCuhdm0 割り込みルーチン内で速度を稼ぐためにグローバル変数をローカル変数にコピーして
それを元に色々処理しようとするとうまくいかない
グローバル変数を直接使って処理するとうまくいく
こういうことはありえるのかな?
それを元に色々処理しようとするとうまくいかない
グローバル変数を直接使って処理するとうまくいく
こういうことはありえるのかな?
38デフォルトの名無しさん (ワッチョイ 4910-5Ix7)
2022/08/16(火) 10:11:26.14ID:wezFOLPc0 ・・・グローバル変数の書き戻し忘れとか?
39デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/16(火) 11:20:38.26ID:2x3mrzZQa ポインタ便利ですね
40デフォルトの名無しさん (スッププ Sd62-jKaU)
2022/08/16(火) 11:58:39.88ID:dXh796NKd すっごく抽象的でさっぱりわからんw
なんの割り込み?
どううまくいかない?
なんの割り込み?
どううまくいかない?
41はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-5Ix7)
2022/08/16(火) 14:05:35.67ID:+o+ePBjP0 >>37
書いたプログラムのロジックは誤ってないと仮定して、
コンパイラによる最適化が割り込みに配慮しないなら思ったような動作にならないということはあり得る。
ある変数が途中で変更されることはないと確信できる状況なら
レジスタにロード済みの値を使いまわしたりするのはごく普通の動作。
場合によっては定数にまで畳み込まれることもある。
だけど、割り込みはそうしたメインの流れと関係なく問答無用でどこにでも割り込むから齟齬が生じる。
C99 までは割り込みや平行については言語仕様ではあまり取り決めず、
動作の詳細な部分は処理系まかせなものの volatile キーワードを付けた変数は最適化が抑制されるとか、
処理系の拡張で属性指定を付けれるとかいった機能を利用してどうにかしてきた。
(たぶん POSIX にはもうちょっと詳しい規定がありそうだと思うけど私はよく知らない。)
C11 以降はスレッドまわりの整備が進んだので割り込みでも活用できる部分は多いと思うんだけど、
オプショナルな仕様なので C11 の処理系として必須なわけではないんよ。
おそらくは使っている処理系・実行環境で使っているお決まりのパターンがあると思うからそういうのを探して
真似するのが手っ取り早いと思う。
書いたプログラムのロジックは誤ってないと仮定して、
コンパイラによる最適化が割り込みに配慮しないなら思ったような動作にならないということはあり得る。
ある変数が途中で変更されることはないと確信できる状況なら
レジスタにロード済みの値を使いまわしたりするのはごく普通の動作。
場合によっては定数にまで畳み込まれることもある。
だけど、割り込みはそうしたメインの流れと関係なく問答無用でどこにでも割り込むから齟齬が生じる。
C99 までは割り込みや平行については言語仕様ではあまり取り決めず、
動作の詳細な部分は処理系まかせなものの volatile キーワードを付けた変数は最適化が抑制されるとか、
処理系の拡張で属性指定を付けれるとかいった機能を利用してどうにかしてきた。
(たぶん POSIX にはもうちょっと詳しい規定がありそうだと思うけど私はよく知らない。)
C11 以降はスレッドまわりの整備が進んだので割り込みでも活用できる部分は多いと思うんだけど、
オプショナルな仕様なので C11 の処理系として必須なわけではないんよ。
おそらくは使っている処理系・実行環境で使っているお決まりのパターンがあると思うからそういうのを探して
真似するのが手っ取り早いと思う。
42デフォルトの名無しさん (スッププ Sd62-jKaU)
2022/08/16(火) 19:21:50.20ID:7tUZ32LZd そういやそんな問題に悩んでた奴でvolatileの存在知らない奴がいたな
…大丈夫だよね?
…大丈夫だよね?
43デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/17(水) 12:06:24.22ID:75soL8XVa volatile で全ての問題が解決する訳じゃないけどな
知らないのはまずいな
知らないのはまずいな
44デフォルトの名無しさん (ワッチョイ 06ad-Lyl8)
2022/08/17(水) 15:44:25.95ID:VZh9Cr0g0 switch文がポンコツ過ぎて二分探索のif文で記述したくなります
case設定がへたくそなのでしょうか?
case設定がへたくそなのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★3 [蚤の市★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 秋田内陸縦貫鉄道「列車が脱線、転覆」と通報 北秋田市、萱草駅付近 [蚤の市★]
- 【映画】『スーパーマン』のDNAを引き継ぐZ世代の最強ヒロイン!『スーパーガール』 2026年夏に公開予定 予告編も公開 [冬月記者★]
- 【テレビ】粗品「THE W」バッサリ「おもんない、レベル低い」審査員就任で「日テレが“血の海”に…」 [湛然★]
- 玉木雄一郎「日本は労働時間が短すぎる!これが経済の足を引っ張っている。労働増・企業に投資減税・教育予算増、これで財政破綻回避 [256556981]
- まさか日本政府より中国政府のほうが信用できる時代がくるとは思わなかったな。日本政府てか高市政権か [472617201]
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- 今年の漢字、きょう発表😉 [583597859]
- 起きたら今日も高市が総理辞めてなくてワロタw [153490809]
- 日本人の間で脱税がブーム 所得税の追徴課税額1400億円超、過去最高 [402859164]
