[過去ログ] C言語なら俺に聞け 163 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
25(1): (ワッチョイ 2910-Xwm8) 2024/08/27(火)17:58 ID:K+iNaUMP0(1) AAS
大抵最初の開発者は誰かが修正してくれるだろうと適当な仕様で設計して、
その後引き継いだ開発者はなにか意図があるのだろうと思ってそのまま維持していくという悪循環・・・。
26: (ワッチョイ 427c-qo4T) 2024/08/28(水)01:09 ID:E82+IHOF0(1) AAS
>>25
あるある過ぎる
27: (ワッチョイ f9d1-j0Zy) 2024/08/28(水)01:32 ID:ZIniGH7S0(1/2) AAS
ちち、どっかいけ
28: (ワッチョイ f9d1-j0Zy) 2024/08/28(水)01:35 ID:ZIniGH7S0(2/2) AAS
ごばくした、ごめん
29: (ワッチョイ 6e63-wgTk) 2024/08/28(水)09:35 ID:22YTSKRT0(1) AAS
アーニャにはここはまだ早い
30: (オイコラミネオ MM1b-qpqo) 2024/09/02(月)15:52 ID:VEiLzJptM(1) AAS
RustがCより速くなるベンチマークは見たことがない
Nim2.0のORCは明示的にオブジェクトプールを使ったプログラミングが必要ですが
ベンチマークがCより2倍以上速くなって、特にハードなリアルタイムシステム向け
のチューニングもできるようになってるみたい
外部リンク:zenn.dev
Nim2.0がCより2倍以上速くなって、しかもORCでメモリ安全も担保されているなら
Rustを使う意味がなくなると思うのですが、このベンチマークは本当なのでしょうか?
省9
31: (ワッチョイ 0701-gNE8) 2024/09/02(月)22:08 ID:DccWFR9v0(1) AAS
Rustを褒めて自尊心保つやつの次はNim版が出てきたのか
32: (ワッチョイ 5f5a-HmUJ) 2024/09/02(月)23:12 ID:3HuFqT9S0(1) AAS
Nim推しは以前から変なやつ多かったから
33(2): (ワッチョイ 27eb-mtNr) 2024/09/02(月)23:28 ID:09ZYUS090(1) AAS
Nim言語の良し悪しは分からんが、メモリ管理に関しては理想的だわ
ムーブ後のオブジェクトにアクセスするとRustだとコンパイルエラーで面倒な事になるけど、Nimは参照カウントを使って解決するので少し遅くなるだけだ
そっちの方が絶対良い
気になる場合は後で直せる
34(1): (ワッチョイ c770-bfwh) 2024/09/03(火)18:51 ID:xAVNzrUq0(1) AAS
>>33
コンパイルエラー?
35: (ワッチョイ 27eb-mtNr) 2024/09/04(水)01:03 ID:c5l8yfTZ0(1) AAS
>>34
だからなんだ?
Rustでムーブ後のオブジェクトにアクセスしてみろよ
36(1): (ワッチョイ 6780-e6xt) 2024/09/04(水)09:34 ID:eBGcFHFx0(1) AAS
>>33
どこにコンパイル時期にメモリの不正アクセス検知できるコンパイラーがあるんだよ
便利すぎないか
37: (ワッチョイ 5fc1-mtNr) 2024/09/04(水)09:42 ID:uvDwCGK/0(1) AAS
>>36
ムーブ(所有権の移動)の概念知らない奴かよw
38: (ワッチョイ bfe0-5+wm) 2024/09/04(水)11:20 ID:yycwJMQK0(1) AAS
時代に取り残されたじじい
39: (ワッチョイ 7f63-hbJw) 2024/09/04(水)11:26 ID:6FkHz3Id0(1) AAS
今どきのヤングはどの辺を走っているのかな?
40: (アウアウエー Sa1f-XN8b) 2024/09/05(木)00:07 ID:/oUqYYg3a(1) AAS
RefCellのborrowとかborrow_mutがCより速い訳がないだろ
41: (ワッチョイ c770-bfwh) 2024/09/05(木)06:20 ID:IMzSmyWL0(1/2) AAS
アセンブラ使ったことない子供たちにはわからんのだろ
42: (ワッチョイ 7f0e-D/hx) 2024/09/05(木)08:53 ID:oYH6V42M0(1) AAS
Aiの時代にこんなレトロ言語に夢中になってる場合でもないだろ
43: (ワッチョイ 8710-D/hx) 2024/09/05(木)09:42 ID:00qJ+IF20(1) AAS
ペイントソフト溢れた時代にエクセルで描いて絶賛される時代。
44: (ワッチョイ c770-bfwh) 2024/09/05(木)13:27 ID:IMzSmyWL0(2/2) AAS
AIなんて究極的には予備知識なしで使えるようになるもんだろ
いま必死で呪文を覚えてる奴らには気の毒だがw
プログラムの学習はそれとは逆だぞ
45: (ワッチョイ 0701-CMA8) 2024/09/05(木)13:41 ID:YoL+MCk60(1) AAS
AIにはアセンブラかCで書かせた方が効率がいいじゃん
46: (ワッチョイ 5fc1-mtNr) 2024/09/05(木)20:45 ID:mduO1G690(1) AAS
今はアニメもCGで作る時代だけど、だからデッサン力なんて不要と言ってるのに近いなw
47: (ワッチョイ 27d1-XcdZ) 2024/09/06(金)02:12 ID:ObPC8Kit0(1/2) AAS
AIなら直接機械語書けそうだけど最低限人間がコードを読めるようにするためにCで出力するのが流行りそう
48(1): (ワッチョイ 7f0e-D/hx) 2024/09/06(金)17:06 ID:3sxDLHxZ0(1) AAS
もはやプログラマはAIにどう質問するかだけが求められてる時代
ビックデータが前提なのはわかってるけどchatAIと画像AIはマジでオーパーツだわとても0と1だけで実現されてる技術と思えん・・・
49: (ワントンキン MM3f-cmcv) 2024/09/06(金)17:30 ID:bUa4C6AFM(1) AAS
ここはAIの質問スレになる予定です
50: (ワッチョイ 7fe0-bfwh) 2024/09/06(金)17:59 ID:wWap9ofG0(1/2) AAS
>>48
Cやアセンブラを知らなかったらコンピューター自体が魔法に思えるんだろうなw
51(1): (ワッチョイ 8710-D/hx) 2024/09/06(金)18:14 ID:fzo/g0jk0(1) AAS
プログラム上での比較が、未だに変数2つの比較(if(A=B)とか )しかイメージ出来ないので
AIのアルゴリズムどころか、2つのサイズの違う画像比較ってのさえどうやるのか検討もつかん・・・。
52: (ワッチョイ bf9c-H9U1) 2024/09/06(金)18:37 ID:4wqfzUPa0(1) AAS
3Blue1BrownJapanのディープラーニング解説動画
動画リンク[YouTube]
現在chapter6まで和訳されてる(本家英語版は7が出た)
53: (ワッチョイ 7fe0-bfwh) 2024/09/06(金)21:13 ID:wWap9ofG0(2/2) AAS
>>51
引き算してその絶対値が一定以内だったら同じとみなす
if(abs(A-B)<C){…
それぐらいならわかるだろ?
54: (ワッチョイ 47b1-D/hx) 2024/09/06(金)21:19 ID:eMGejp5m0(1) AAS
点でしか見れない人に面を理解させる手法・・・
55: (ワッチョイ 274e-XcdZ) 2024/09/06(金)21:46 ID:ObPC8Kit0(2/2) AAS
この世界もほぼ陽子と中性子と電子だけで出来てるのにこれだけ複雑なんだから0と1だけで複雑な演算出来ても不思議ではない
56: (ワッチョイ 5fad-WCFq) 2024/09/06(金)21:53 ID:H8MSdYGz0(1) AAS
ようこちゃんとでんこちゃんは知っているけど
中性子って子は知らない
57: (ワンミングク MM3f-cmcv) 2024/09/06(金)22:09 ID:aKdHJjI6M(1) AAS
光子ちゃんも忘れないであげて
58: (ワッチョイ 5fc1-mtNr) 2024/09/07(土)00:47 ID:mFTEs+Pq0(1) AAS
0と1だけじゃないけどな
その他に位(くらい)という概念がある
これによって無限の数を表現できる
むしろ位の概念によって数が表現されている
それさえ有れば記号なんて何でもいい
59(1): (ワッチョイ 47b1-D/hx) 2024/09/07(土)20:51 ID:XGt+Z3l/0(1) AAS
どこかの国だか村では両手の指の数以上を表現する言葉がないって話をどこかで・・・。
60(1): (ワンミングク MM3f-cmcv) 2024/09/07(土)22:06 ID:GNvzZpYIM(1) AAS
ムカデは100進数で数えている
61(1): (ワッチョイ f94a-865n) 2024/09/08(日)00:25 ID:zd6RlSMM0(1/2) AAS
>>59
位の概念が無いから10までしか数えられない
位を考慮すると両手で1023まで数えられる
62(1): (ワッチョイ f94a-865n) 2024/09/08(日)00:30 ID:zd6RlSMM0(2/2) AAS
指を曲げる伸ばすの2通りとすると1023だが、指を完全に曲げる、伸ばす、半分まで伸ばす(曲げる)の3通りとすると3^10-1=59,048まで表現できるなw
63: (ワッチョイ 662a-Vk/b) 2024/09/08(日)07:38 ID:LXYiwE7e0(1) AAS
>>60
ヒトを含めた四肢類は4進法なの?
64: (ワッチョイ bd5f-FAeb) 2024/09/08(日)10:08 ID:mVbg4wOX0(1) AAS
>>61-62
人差し指と薬指を伸ばして、かつ中指と小指を曲げるのは難易度がやや高いぜ。
(親指を伸ばせば『グワシ』)
65: (ワッチョイ 6663-QZ+t) 2024/09/08(日)10:25 ID:IhFVsGpe0(1) AAS
グワシは古語
66: (ワッチョイ a510-IFMZ) 2024/09/08(日)15:41 ID:aTNFTtUw0(1) AAS
とりあえず、他人の投稿で言ってもいない単語や解釈を勝手に加えてマウント取ろうとするのはどうかと思うぞ。
67: (ワッチョイ a6e0-RtM0) 2024/09/08(日)23:23 ID:6gnZvy5A0(1) AAS
問題はギャグとしてつまらないという点だ
68(4): (ワッチョイ fa2d-2PHd) 2024/09/09(月)17:06 ID:ft14UVke0(1) AAS
lvalueに関してエラーが出るんだけど、どうしてこれがだめなのかわからないです
#include <stdio.h>
int main()
{
char s[] = "hoge";
char t[100];
while (*t++ = *s++)
省3
69: (ワッチョイ 6663-QZ+t) 2024/09/09(月)17:17 ID:JnQxQHVK0(1/3) AAS
>>68
char *p = s;
char *q = t;
while (*q++ = *p++)
こう書けば通る。何故かはちょっと考えて ;
70: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-IU9Y) 2024/09/09(月)17:19 ID:XH4OT6yj0(1/2) AAS
>>68
s の型は char[5] 、 t の型は char[100] だというのはわかる?
だけど式に出てくる配列は原則として配列の先頭要素を指すポインタ (この場合に型でいえば char*) に型変換される。
変換後に出てくるポインタは rvalue なのでインクリメントの対象に出来ない。
rvalue ってのは式の評価をする間に一時的に生まれて評価が終わったら消えるものなので
仮にインクリメント出来たとしても何にも使えない。
配列が勝手にポインタに変換されるっていうのが変則的で分かり難いポイントだけど
省1
71(1): (ワッチョイ 9e79-auhz) 2024/09/09(月)18:22 ID:zvC05GrM0(1) AAS
ポインタと同じ表記が使えるだけでポインタに変換されるわけではないぞ老害
72: (ワッチョイ 6663-QZ+t) 2024/09/09(月)18:25 ID:JnQxQHVK0(2/3) AAS
char *s = "hoge";
char t[100];
int i = 0;
while (*(t+i) = *s++)
i++;
sを配列ではなく、ポインタに変える、
tもポインタにしたいところだが、格納先確保が目的なら
省1
73: (ワッチョイ eaad-Pebh) 2024/09/09(月)18:30 ID:D7I9z5W00(1) AAS
それなら while (*(t+i) = *(s+i)) って書くかな
74: (ワッチョイ 6663-QZ+t) 2024/09/09(月)18:36 ID:JnQxQHVK0(3/3) AAS
s[]、t[100]と書いたとき、sやtはメモリー上の特定の位置を指す
ラベルのようなものなので書き換える事は出来ない。ポインタ定数とも言う。
一方ポインタ変数は、任意のアドレスを指す変数、変更も操作できる
constとか、突っ込まんでください
75: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-IU9Y) 2024/09/09(月)18:57 ID:XH4OT6yj0(2/2) AAS
>>71
規格には「型変換する」と明瞭に書いてあって変換しないと解釈できる余地はない。
76: 68 (ワッチョイ fa2d-2PHd) 2024/09/10(火)07:06 ID:fwzKZR690(1) AAS
色々教えてくれてありがとう
s[]の先頭を指すポインタ*sを++で進めることができちゃったら
s[0]もズレちゃうのでだめだってことだよね
そりゃだめだわ
77(1): (ワッチョイ 1e6e-Qzc4) 2024/09/10(火)07:45 ID:ZXVJVLjy0(1) AAS
s[], t[100]; って宣言したなら、s[idx], t[idx] って使おうよ
78: (ワッチョイ a6b5-RtM0) 2024/09/10(火)08:09 ID:oAzej4EH0(1) AAS
そこはこだわらんでもいいだろ
79: 警備員[Lv.5][新芽] (ワッチョイ f969-ztXh) 2024/09/10(火)09:09 ID:H8O84G940(1) AAS
sやtは constということでもないのか
80: (ワッチョイ 6663-QZ+t) 2024/09/10(火)10:14 ID:WwqiNfks0(1) AAS
立て札は移動禁止です
81(1): (アウアウエー Sa52-t/33) 2024/09/10(火)13:19 ID:KGjTz1X0a(1) AAS
>sやtは const
constっていつからあったか知らんけど
constない頃からsもtも*pや*qとは扱いが違ったんじゃね
82: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-IU9Y) 2024/09/10(火)14:04 ID:rqI1GpSt0(1/2) AAS
lvalue の概念は K&R 1st の頃からあったよ。
lvalue という用語はちょっとどうなの……と思うけど。
Rust だと place と呼んでるみたいだね。
83: (ワッチョイ eafd-BHET) 2024/09/10(火)21:10 ID:UL+jlunn0(1) AAS
お前は変な事ばかり言ってるからもう引っ込んどけよ
84: (ワッチョイ adba-mB8c) 2024/09/10(火)21:22 ID:OwUxLa4s0(1) AAS
ポインタそのものを変えないやつと
指す先を変えないやつの書き方で
未だに迷うっていう
85: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-IU9Y) 2024/09/10(火)21:35 ID:rqI1GpSt0(2/2) AAS
キーワードを並べる順序で意味が変わるのは迷うけど
順序をどうならべても良い場合もそれはそれでびっくりする。
int const long foo;
みたいに変数を宣言して良い。
まあそんなことをするやつはいないと思うけど。
86: (ワッチョイ a6ee-865n) 2024/09/10(火)22:53 ID:BKdRZcpD0(1) AAS
consr char*は本当はchar const*と書くべきなんだよね
これでもコンパイルは通って同じ結果になる
読む時は右から読めばいい
pointer to const char
これだと指す先がconstなのが分かりやすい
ポインター自体をconstにするには
char* constとして、同じく右からconst pointer to charと読む
省6
87: (ワッチョイ a6b2-Z1Qu) 2024/09/11(水)01:20 ID:ZbZmMQbl0(1) AAS
それ前橋氏のポインタ完全制覇で知った
88(1): (ワッチョイ a6b5-RtM0) 2024/09/11(水)08:00 ID:eq6A6T9x0(1) AAS
>>81
アセンブラにして考えるとわかりやすい
char s[] = "hoge";
アセンブラの表現↓
s:
.db "hoge¥0"
char *s = "hoge";
省9
89: 警備員[Lv.1][新芽] (ワッチョイ 1ea1-ztXh) 2024/09/11(水)09:16 ID:IhX3t9qv0(1) AAS
ここでいう sには実体がない、とはどういうことですか?
90: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-IU9Y) 2024/09/11(水)09:19 ID:Zm39E+090(1) AAS
大元の質問が >>68 なので低レイヤからの説明はあまり筋が良くないと思う。
エラーメッセージの意味を読み取れるようにならないから。
91(1): (ワッチョイ 6663-QZ+t) 2024/09/11(水)09:30 ID:dQ20XCdF0(1/3) AAS
8ビットCPUのメモリ保護されてない頃だと
配列どころか、プログラムコードも書換できました笑
92(2): (ワッチョイ a510-IFMZ) 2024/09/11(水)09:49 ID:h52e7Ahm0(1) AAS
> sには実体がない、とはどういうことですか?
変数エリアに書き込まれていない数値、データ。
プログラム上で要求された時にコンパイル時や関数によってその都度作られる仕様・・・かな?しらんけど。
>91
>プログラムコードも書換できました
それはむしろ”技術”扱いだったな。
サブルーチンでジャンプ先やIOポートを書き換えて・・・て。
省1
93(2): (ワッチョイ 1e3e-42jK) 2024/09/11(水)15:02 ID:DEx1pDDa0(1) AAS
こんだけいて>>77くらいしかまともな回答者がいないとかひどいなあ
94(1): (ブーイモ MM45-bJfQ) 2024/09/11(水)15:25 ID:1n/VD1trM(1) AAS
そんなのこだわっても結局関数の引数で配列型では渡せないんだからその程度は受け入れて慣れたほうがいい
95: (ワッチョイ 6663-QZ+t) 2024/09/11(水)15:58 ID:dQ20XCdF0(2/3) AAS
ここは、「聞け」とはあるが、「回答する」とは書いていない
96(1): (ワッチョイ 1e45-Qzc4) 2024/09/11(水)16:44 ID:+qxKgs2P0(1) AAS
こっちが自然だろ
t[100]を*(t+idx)なんてやる方が何の拘りだよ
97(1): (ワッチョイ 5ec2-bJfQ) 2024/09/11(水)16:55 ID:tx1pt4w10(1) AAS
その程度どっちでもいい
98: 警備員[Lv.4][新芽] (ワッチョイ 8afb-ztXh) 2024/09/11(水)20:45 ID:l6JSnCmY0(1) AAS
配列は外部リンケージのときも注意が必要なんだよね
あまりそういう使い方しないから、すぐにはピンとこないや
99: (ワッチョイ 65cd-RtM0) 2024/09/11(水)22:04 ID:+V4MmH6p0(1) AAS
>>93
別にまともでもない
配列で定義してポインタで操作できるのがCの柔軟性だから
idxにこだわると簡単な操作を複雑にしかねない
100: (ワッチョイ 6663-QZ+t) 2024/09/11(水)23:11 ID:dQ20XCdF0(3/3) AAS
> while (*(t+i) = *s++)
これは、
> while (*t++ = *s++)
;これがエラーになるのは何故かと言う質問から始まったからです
t++がエラーで、t+iなら大丈夫が理解できれば解決だと思う
ポインタの理解というのは壁にはなりますが、
乗り越えれば意外と簡単です、がんばれ!
101(1): 警備員[Lv.7][新芽] (ワッチョイ f931-ztXh) 2024/09/12(木)00:58 ID:QGeKjVfA0(1) AAS
>>92 ありがとうございました(sには実態がない)
gcc -S test.c
で .s を出力して眺めてみると、そのような感じになっていました
最適化と、AT&Tのオペランドが逆なのに慣れず読みにくかったですが
"hoge" は「実体」が .data に置かれ、実行時にスタックにコピーされるのかと想像してましたが、実装がどうあれ、スタッフ上に "hoge" を置くための元を実体というのは違うと思いました
実際、"hoge" は .db でアロケートされず、4字は 32ビットの数値定数とされ、スタックに即値で転記されていました(実行時に生成されていました)
# とても伝わりにくいと思いますが…
102(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 7932-IU9Y) 2024/09/12(木)08:54 ID:TbaO6N6i0(1) AAS
誰も説明してなかったことに気づいた。
E1[E2] が (*((E1)+(E2))) と等価であるというルールがある。
103(1): (ワッチョイ 8a5c-8qrK) 2024/09/12(木)21:59 ID:m7IlJoP80(1) AAS
それいにしえからのバカ発見器なんだが2024年になってもまだ動いてるとはC言語おそるべし
104: 警備員[Lv.3][新芽] (ワッチョイ b68a-ztXh) 2024/09/12(木)23:41 ID:+nQe2m720(1) AAS
次の方どうぞ
105: (ワッチョイ a6ee-865n) 2024/09/12(木)23:43 ID:sEtsUeoh0(1) AAS
>>103
その自由度があるからC++でhtbl["key"]の様な事が出来る
Cじゃ意味ない仕様だけど、禁止する必要も無かろう
上下前次1-新書関写板覧索設栞歴
あと 897 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s