C言語なら俺に聞け 163

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7bba-Lem2)
垢版 |
2024/07/16(火) 22:43:54.18ID:ZrsCjURC0
!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

C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.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言語なら俺に聞け 162
https://mevius.5ch.net/test/read.cgi/tech/1698653580/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (アウアウエー Sa02-hIhh)
垢版 |
2024/07/16(火) 23:09:40.55ID:zAWhziLLa
O2
2024/07/17(水) 00:38:03.50ID:x2xsFX7F0
"甲乙丙丁"[1];
2024/07/17(水) 02:16:43.37ID:rcKIBlXh0
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf
5デフォルトの名無しさん (スプッッ Sda5-cSaw)
垢版 |
2024/07/19(金) 12:09:58.52ID:7xb1gIFBd
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf
2024/08/13(火) 10:33:10.70ID:0tpsfiHy0
C99以降のC言語では、main関数が正常に終了した場合、
明示的にreturn 0;を記述しなくても、コンパイラが自動的にreturn 0;を
挿入することが規定されています。
これにより、main関数の最後にreturn文を省略することが可能になりました。

これまじ?
いや省略できるのは知ってたけど
書かなくても言語仕様的に正しいってことなのでは
7デフォルトの名無しさん (ワッチョイ 2e2a-Fna2)
垢版 |
2024/08/13(火) 10:54:13.55ID:rWI8dcbL0
>>6
> 省略できる

これまじ? ってやってみたら省略できた。知らんかった。
2024/08/13(火) 11:02:03.46ID:zgXpATPx0
C++の方は最初からそうじゃなかったっけ?
2024/08/13(火) 11:04:04.36ID:iZOfVN0Y0
ところで、main以外はどうなんだろう
mainだけ特別って事なのかな?OSとも絡むし
2024/08/13(火) 11:58:17.89ID:ZDyvNux60
>>9
retunr 0; が補われるルールは main だけの特別扱いだけど……。

関連する変な規則として C では関数の返却値の型が void ではないときに return せずに } に到達、かつ、関数の呼び出し元が値を使おうとするのは未定義ということになってる。
逆に言えば } に到達するだけなら OK ってことね。
C++ だと関数の返却値の型が void でないときに return せずに } に到達するだけで駄目という違いがある。
2024/08/13(火) 20:38:38.66ID:Yor/eSuX0
>>9
値を返さない関数ならreturnは省略できる
値を返す関数だと戻り値が不定になる
(多分コンパイルでwarningが出るか最近のではerrorになるだろうな)
そのくらい一度も試したことないのか?
12デフォルトの名無しさん (アウアウエー Sa4a-ZlnX)
垢版 |
2024/08/14(水) 08:45:20.95ID:92pG5tQ9a
CPUが最後に処理したアキュムレータの内容が
戻り値として有効になってるケースが多い
違う実装があったら教えてくれ
2024/08/14(水) 09:29:38.29ID:o5Tm+MCf0
戻さないで自動的に挿入されるのならvoidでいいやん
2024/08/14(水) 16:14:28.35ID:91FNum+40
>>12
CPUでも最適化レベルでも変わるのでその情報は無意味だ
素直にvoidにしとけばいいじゃん
15デフォルトの名無しさん (ワッチョイ 42ad-ZlnX)
垢版 |
2024/08/17(土) 12:40:14.00ID:P2kCpMMm0
>>12
じゃあお前に教えるために
これからそういうの作ろう
2024/08/17(土) 17:19:02.88ID:w43wc/GB0
>>12
最適化が絡むとなんでも起こる。
GCC でやってみた。
https://godbolt.org/z/rzoEqdYWz

インライン化と合わさったときはおそらく
「なんでもいいなら事前に適当な定数 (この場合はゼロ) に置き換えてええやろ」ということが起こってる。
インライン化を抑止したらそのときに入ってたでたらめな値になる。
17デフォルトの名無しさん (ワッチョイ 9f2a-0AGY)
垢版 |
2024/08/18(日) 12:47:05.86ID:z2E2wJpW0
CGCのサイクル
https://www.cgcjapan.co.jp/recruit/images/system/cgc-system.jpg
18デフォルトの名無しさん (ワッチョイ 7fad-9uNt)
垢版 |
2024/08/19(月) 14:50:35.14ID:2a6IfSVu0
CCG
https://dic.pixiv.net/a/CCG
2024/08/19(月) 15:05:46.71ID:V1kjWLO50
アキュムレータって呼び名、いかにも電卓っぽい
20デフォルトの名無しさん (スプッッ Sdc1-qo4T)
垢版 |
2024/08/26(月) 18:48:30.29ID:cPELMU3ld
ヘッダファイルちゃんとincludeしようよ。
2024/08/26(月) 19:32:21.98ID:0fQF2fer0
ヘッダーファイルインクルードする1行だけのプログラム見たことがある

#include /dev/tty
2024/08/27(火) 00:49:35.29ID:9npsKRkS0
それヘッダファイルじゃないです
23デフォルトの名無しさん (ワッチョイ 6e2a-EI2W)
垢版 |
2024/08/27(火) 08:24:35.00ID:apM/pcD70
エラー: #include は "FILENAME" または <FILENAME> が必要です
24デフォルトの名無しさん (アウアウエー Sa0a-PBPb)
垢版 |
2024/08/27(火) 14:09:22.45ID:oHcafaf7a
<>を入力すると消えるブラウザというか掲示板も流行ったなHTMLは糞だわ
2024/08/27(火) 17:58:59.59ID:K+iNaUMP0
大抵最初の開発者は誰かが修正してくれるだろうと適当な仕様で設計して、
その後引き継いだ開発者はなにか意図があるのだろうと思ってそのまま維持していくという悪循環・・・。
26デフォルトの名無しさん (ワッチョイ 427c-qo4T)
垢版 |
2024/08/28(水) 01:09:19.85ID:E82+IHOF0
>>25
あるある過ぎる
2024/08/28(水) 01:32:44.54ID:ZIniGH7S0
ちち、どっかいけ
2024/08/28(水) 01:35:08.84ID:ZIniGH7S0
ごばくした、ごめん
2024/08/28(水) 09:35:19.18ID:22YTSKRT0
アーニャにはここはまだ早い
30デフォルトの名無しさん (オイコラミネオ MM1b-qpqo)
垢版 |
2024/09/02(月) 15:52:36.13ID:VEiLzJptM
RustがCより速くなるベンチマークは見たことがない

Nim2.0のORCは明示的にオブジェクトプールを使ったプログラミングが必要ですが
ベンチマークがCより2倍以上速くなって、特にハードなリアルタイムシステム向け
のチューニングもできるようになってるみたい
https://zenn.dev/dum...icles/af2b2b9f8fd890

Nim2.0がCより2倍以上速くなって、しかもORCでメモリ安全も担保されているなら
Rustを使う意味がなくなると思うのですが、このベンチマークは本当なのでしょうか?

NimはCのソースコード吐けるからから、Nimの手動メモリ管理はCの手動メモリ管理と
同じとして、Nim2.0のORCで明示的にオブジェクトプールを使ったプログラミングと
比較した場合のベンチマークが2倍以上速くなってるからCより速いと言ってる
https://github.com/Araq/fosdem2020

人間がCの手動メモリ管理したプログラムだと限界があるNimのムーブセマンティクスの
アルゴリズムでメモリの最適化をしてるから、人間では到底太刀打ちできない事を証明
した論文があるオブジェクトプール版のNimから生成したCのコードは人間には書けない

Nim2.0のムーブセマンティクスの本当に優れた最適化とORCで明示的にオブジェクトプールでプログラミングすることによって、人間がCの手動メモリ管理したベンチマークより2倍以上速くできる
https://zenn.dev/dumblepy/articles/af2b2b9f8fd890
2024/09/02(月) 22:08:58.52ID:DccWFR9v0
Rustを褒めて自尊心保つやつの次はNim版が出てきたのか
2024/09/02(月) 23:12:40.71ID:3HuFqT9S0
Nim推しは以前から変なやつ多かったから
2024/09/02(月) 23:28:27.10ID:09ZYUS090
Nim言語の良し悪しは分からんが、メモリ管理に関しては理想的だわ
ムーブ後のオブジェクトにアクセスするとRustだとコンパイルエラーで面倒な事になるけど、Nimは参照カウントを使って解決するので少し遅くなるだけだ
そっちの方が絶対良い
気になる場合は後で直せる
2024/09/03(火) 18:51:27.81ID:xAVNzrUq0
>>33
コンパイルエラー?
2024/09/04(水) 01:03:52.03ID:c5l8yfTZ0
>>34
だからなんだ?
Rustでムーブ後のオブジェクトにアクセスしてみろよ
2024/09/04(水) 09:34:28.92ID:eBGcFHFx0
>>33
どこにコンパイル時期にメモリの不正アクセス検知できるコンパイラーがあるんだよ
便利すぎないか
2024/09/04(水) 09:42:59.71ID:uvDwCGK/0
>>36
ムーブ(所有権の移動)の概念知らない奴かよw
2024/09/04(水) 11:20:54.96ID:yycwJMQK0
時代に取り残されたじじい
2024/09/04(水) 11:26:12.60ID:6FkHz3Id0
今どきのヤングはどの辺を走っているのかな?
40デフォルトの名無しさん (アウアウエー Sa1f-XN8b)
垢版 |
2024/09/05(木) 00:07:48.49ID:/oUqYYg3a
RefCellのborrowとかborrow_mutがCより速い訳がないだろ
2024/09/05(木) 06:20:13.32ID:IMzSmyWL0
アセンブラ使ったことない子供たちにはわからんのだろ
2024/09/05(木) 08:53:17.49ID:oYH6V42M0
Aiの時代にこんなレトロ言語に夢中になってる場合でもないだろ
2024/09/05(木) 09:42:51.26ID:00qJ+IF20
ペイントソフト溢れた時代にエクセルで描いて絶賛される時代。
2024/09/05(木) 13:27:55.60ID:IMzSmyWL0
AIなんて究極的には予備知識なしで使えるようになるもんだろ
いま必死で呪文を覚えてる奴らには気の毒だがw
プログラムの学習はそれとは逆だぞ
2024/09/05(木) 13:41:12.34ID:YoL+MCk60
AIにはアセンブラかCで書かせた方が効率がいいじゃん
2024/09/05(木) 20:45:06.75ID:mduO1G690
今はアニメもCGで作る時代だけど、だからデッサン力なんて不要と言ってるのに近いなw
2024/09/06(金) 02:12:25.16ID:ObPC8Kit0
AIなら直接機械語書けそうだけど最低限人間がコードを読めるようにするためにCで出力するのが流行りそう
2024/09/06(金) 17:06:00.74ID:3sxDLHxZ0
もはやプログラマはAIにどう質問するかだけが求められてる時代
ビックデータが前提なのはわかってるけどchatAIと画像AIはマジでオーパーツだわとても0と1だけで実現されてる技術と思えん・・・
2024/09/06(金) 17:30:18.67ID:bUa4C6AFM
ここはAIの質問スレになる予定です
2024/09/06(金) 17:59:38.15ID:wWap9ofG0
>>48
Cやアセンブラを知らなかったらコンピューター自体が魔法に思えるんだろうなw
2024/09/06(金) 18:14:44.45ID:fzo/g0jk0
プログラム上での比較が、未だに変数2つの比較(if(A=B)とか )しかイメージ出来ないので
AIのアルゴリズムどころか、2つのサイズの違う画像比較ってのさえどうやるのか検討もつかん・・・。
2024/09/06(金) 18:37:17.18ID:4wqfzUPa0
3Blue1BrownJapanのディープラーニング解説動画
https://www.youtube.com/watch?v=tc8RTtwvd5U
現在chapter6まで和訳されてる(本家英語版は7が出た)
2024/09/06(金) 21:13:32.20ID:wWap9ofG0
>>51
引き算してその絶対値が一定以内だったら同じとみなす
if(abs(A-B)<C){…
それぐらいならわかるだろ?
2024/09/06(金) 21:19:53.07ID:eMGejp5m0
点でしか見れない人に面を理解させる手法・・・
2024/09/06(金) 21:46:42.59ID:ObPC8Kit0
この世界もほぼ陽子と中性子と電子だけで出来てるのにこれだけ複雑なんだから0と1だけで複雑な演算出来ても不思議ではない
2024/09/06(金) 21:53:29.16ID:H8MSdYGz0
ようこちゃんとでんこちゃんは知っているけど
中性子って子は知らない
2024/09/06(金) 22:09:25.96ID:aKdHJjI6M
光子ちゃんも忘れないであげて
2024/09/07(土) 00:47:09.38ID:mFTEs+Pq0
0と1だけじゃないけどな
その他に位(くらい)という概念がある
これによって無限の数を表現できる
むしろ位の概念によって数が表現されている
それさえ有れば記号なんて何でもいい
2024/09/07(土) 20:51:59.47ID:XGt+Z3l/0
どこかの国だか村では両手の指の数以上を表現する言葉がないって話をどこかで・・・。
2024/09/07(土) 22:06:43.98ID:GNvzZpYIM
ムカデは100進数で数えている
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況