!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
探検
C言語なら俺に聞け 163
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 7bba-Lem2)
2024/07/16(火) 22:43:54.18ID:ZrsCjURC02デフォルトの名無しさん (アウアウエー Sa02-hIhh)
2024/07/16(火) 23:09:40.55ID:zAWhziLLa O2
4デフォルトの名無しさん (ワッチョイ b132-HYxY)
2024/07/17(水) 02:16:43.37ID:rcKIBlXh05デフォルトの名無しさん (スプッッ Sda5-cSaw)
2024/07/19(金) 12:09:58.52ID:7xb1gIFBd6デフォルトの名無しさん (ワッチョイ be2d-Xdjv)
2024/08/13(火) 10:33:10.70ID:0tpsfiHy0 C99以降のC言語では、main関数が正常に終了した場合、
明示的にreturn 0;を記述しなくても、コンパイラが自動的にreturn 0;を
挿入することが規定されています。
これにより、main関数の最後にreturn文を省略することが可能になりました。
これまじ?
いや省略できるのは知ってたけど
書かなくても言語仕様的に正しいってことなのでは
明示的にreturn 0;を記述しなくても、コンパイラが自動的にreturn 0;を
挿入することが規定されています。
これにより、main関数の最後にreturn文を省略することが可能になりました。
これまじ?
いや省略できるのは知ってたけど
書かなくても言語仕様的に正しいってことなのでは
7デフォルトの名無しさん (ワッチョイ 2e2a-Fna2)
2024/08/13(火) 10:54:13.55ID:rWI8dcbL08デフォルトの名無しさん (ワッチョイ c25c-PXPr)
2024/08/13(火) 11:02:03.46ID:zgXpATPx0 C++の方は最初からそうじゃなかったっけ?
9デフォルトの名無しさん (ワッチョイ 2e63-mJNK)
2024/08/13(火) 11:04:04.36ID:iZOfVN0Y0 ところで、main以外はどうなんだろう
mainだけ特別って事なのかな?OSとも絡むし
mainだけ特別って事なのかな?OSとも絡むし
10はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-6HV9)
2024/08/13(火) 11:58:17.89ID:ZDyvNux60 >>9
retunr 0; が補われるルールは main だけの特別扱いだけど……。
関連する変な規則として C では関数の返却値の型が void ではないときに return せずに } に到達、かつ、関数の呼び出し元が値を使おうとするのは未定義ということになってる。
逆に言えば } に到達するだけなら OK ってことね。
C++ だと関数の返却値の型が void でないときに return せずに } に到達するだけで駄目という違いがある。
retunr 0; が補われるルールは main だけの特別扱いだけど……。
関連する変な規則として C では関数の返却値の型が void ではないときに return せずに } に到達、かつ、関数の呼び出し元が値を使おうとするのは未定義ということになってる。
逆に言えば } に到達するだけなら OK ってことね。
C++ だと関数の返却値の型が void でないときに return せずに } に到達するだけで駄目という違いがある。
11デフォルトの名無しさん (ワッチョイ 6e83-2R4J)
2024/08/13(火) 20:38:38.66ID:Yor/eSuX0 >>9
値を返さない関数ならreturnは省略できる
値を返す関数だと戻り値が不定になる
(多分コンパイルでwarningが出るか最近のではerrorになるだろうな)
そのくらい一度も試したことないのか?
値を返さない関数ならreturnは省略できる
値を返す関数だと戻り値が不定になる
(多分コンパイルでwarningが出るか最近のではerrorになるだろうな)
そのくらい一度も試したことないのか?
12デフォルトの名無しさん (アウアウエー Sa4a-ZlnX)
2024/08/14(水) 08:45:20.95ID:92pG5tQ9a CPUが最後に処理したアキュムレータの内容が
戻り値として有効になってるケースが多い
違う実装があったら教えてくれ
戻り値として有効になってるケースが多い
違う実装があったら教えてくれ
13デフォルトの名無しさん (ワッチョイ 65c8-tndV)
2024/08/14(水) 09:29:38.29ID:o5Tm+MCf0 戻さないで自動的に挿入されるのならvoidでいいやん
14デフォルトの名無しさん (ワッチョイ 6e83-2R4J)
2024/08/14(水) 16:14:28.35ID:91FNum+4015デフォルトの名無しさん (ワッチョイ 42ad-ZlnX)
2024/08/17(土) 12:40:14.00ID:P2kCpMMm016はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-6HV9)
2024/08/17(土) 17:19:02.88ID:w43wc/GB0 >>12
最適化が絡むとなんでも起こる。
GCC でやってみた。
https://godbolt.org/z/rzoEqdYWz
インライン化と合わさったときはおそらく
「なんでもいいなら事前に適当な定数 (この場合はゼロ) に置き換えてええやろ」ということが起こってる。
インライン化を抑止したらそのときに入ってたでたらめな値になる。
最適化が絡むとなんでも起こる。
GCC でやってみた。
https://godbolt.org/z/rzoEqdYWz
インライン化と合わさったときはおそらく
「なんでもいいなら事前に適当な定数 (この場合はゼロ) に置き換えてええやろ」ということが起こってる。
インライン化を抑止したらそのときに入ってたでたらめな値になる。
17デフォルトの名無しさん (ワッチョイ 9f2a-0AGY)
2024/08/18(日) 12:47:05.86ID:z2E2wJpW018デフォルトの名無しさん (ワッチョイ 7fad-9uNt)
2024/08/19(月) 14:50:35.14ID:2a6IfSVu019デフォルトの名無しさん (ワッチョイ ff63-bHMQ)
2024/08/19(月) 15:05:46.71ID:V1kjWLO50 アキュムレータって呼び名、いかにも電卓っぽい
20デフォルトの名無しさん (スプッッ Sdc1-qo4T)
2024/08/26(月) 18:48:30.29ID:cPELMU3ld ヘッダファイルちゃんとincludeしようよ。
21デフォルトの名無しさん (ワッチョイ 6e63-wgTk)
2024/08/26(月) 19:32:21.98ID:0fQF2fer0 ヘッダーファイルインクルードする1行だけのプログラム見たことがある
#include /dev/tty
#include /dev/tty
22デフォルトの名無しさん (ワッチョイ 72d5-KJKb)
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は糞だわ
25デフォルトの名無しさん (ワッチョイ 2910-Xwm8)
2024/08/27(火) 17:58:59.59ID:K+iNaUMP0 大抵最初の開発者は誰かが修正してくれるだろうと適当な仕様で設計して、
その後引き継いだ開発者はなにか意図があるのだろうと思ってそのまま維持していくという悪循環・・・。
その後引き継いだ開発者はなにか意図があるのだろうと思ってそのまま維持していくという悪循環・・・。
26デフォルトの名無しさん (ワッチョイ 427c-qo4T)
2024/08/28(水) 01:09:19.85ID:E82+IHOF0 >>25
あるある過ぎる
あるある過ぎる
27デフォルトの名無しさん (ワッチョイ f9d1-j0Zy)
2024/08/28(水) 01:32:44.54ID:ZIniGH7S0 ちち、どっかいけ
28デフォルトの名無しさん (ワッチョイ f9d1-j0Zy)
2024/08/28(水) 01:35:08.84ID:ZIniGH7S0 ごばくした、ごめん
29デフォルトの名無しさん (ワッチョイ 6e63-wgTk)
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
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
31デフォルトの名無しさん (ワッチョイ 0701-gNE8)
2024/09/02(月) 22:08:58.52ID:DccWFR9v0 Rustを褒めて自尊心保つやつの次はNim版が出てきたのか
32デフォルトの名無しさん (ワッチョイ 5f5a-HmUJ)
2024/09/02(月) 23:12:40.71ID:3HuFqT9S0 Nim推しは以前から変なやつ多かったから
33デフォルトの名無しさん (ワッチョイ 27eb-mtNr)
2024/09/02(月) 23:28:27.10ID:09ZYUS090 Nim言語の良し悪しは分からんが、メモリ管理に関しては理想的だわ
ムーブ後のオブジェクトにアクセスするとRustだとコンパイルエラーで面倒な事になるけど、Nimは参照カウントを使って解決するので少し遅くなるだけだ
そっちの方が絶対良い
気になる場合は後で直せる
ムーブ後のオブジェクトにアクセスするとRustだとコンパイルエラーで面倒な事になるけど、Nimは参照カウントを使って解決するので少し遅くなるだけだ
そっちの方が絶対良い
気になる場合は後で直せる
34デフォルトの名無しさん (ワッチョイ c770-bfwh)
2024/09/03(火) 18:51:27.81ID:xAVNzrUq0 >>33
コンパイルエラー?
コンパイルエラー?
35デフォルトの名無しさん (ワッチョイ 27eb-mtNr)
2024/09/04(水) 01:03:52.03ID:c5l8yfTZ036デフォルトの名無しさん (ワッチョイ 6780-e6xt)
2024/09/04(水) 09:34:28.92ID:eBGcFHFx037デフォルトの名無しさん (ワッチョイ 5fc1-mtNr)
2024/09/04(水) 09:42:59.71ID:uvDwCGK/0 >>36
ムーブ(所有権の移動)の概念知らない奴かよw
ムーブ(所有権の移動)の概念知らない奴かよw
38デフォルトの名無しさん (ワッチョイ bfe0-5+wm)
2024/09/04(水) 11:20:54.96ID:yycwJMQK0 時代に取り残されたじじい
39デフォルトの名無しさん (ワッチョイ 7f63-hbJw)
2024/09/04(水) 11:26:12.60ID:6FkHz3Id0 今どきのヤングはどの辺を走っているのかな?
40デフォルトの名無しさん (アウアウエー Sa1f-XN8b)
2024/09/05(木) 00:07:48.49ID:/oUqYYg3a RefCellのborrowとかborrow_mutがCより速い訳がないだろ
41デフォルトの名無しさん (ワッチョイ c770-bfwh)
2024/09/05(木) 06:20:13.32ID:IMzSmyWL0 アセンブラ使ったことない子供たちにはわからんのだろ
42デフォルトの名無しさん (ワッチョイ 7f0e-D/hx)
2024/09/05(木) 08:53:17.49ID:oYH6V42M0 Aiの時代にこんなレトロ言語に夢中になってる場合でもないだろ
43デフォルトの名無しさん (ワッチョイ 8710-D/hx)
2024/09/05(木) 09:42:51.26ID:00qJ+IF20 ペイントソフト溢れた時代にエクセルで描いて絶賛される時代。
44デフォルトの名無しさん (ワッチョイ c770-bfwh)
2024/09/05(木) 13:27:55.60ID:IMzSmyWL0 AIなんて究極的には予備知識なしで使えるようになるもんだろ
いま必死で呪文を覚えてる奴らには気の毒だがw
プログラムの学習はそれとは逆だぞ
いま必死で呪文を覚えてる奴らには気の毒だがw
プログラムの学習はそれとは逆だぞ
45デフォルトの名無しさん (ワッチョイ 0701-CMA8)
2024/09/05(木) 13:41:12.34ID:YoL+MCk60 AIにはアセンブラかCで書かせた方が効率がいいじゃん
46デフォルトの名無しさん (ワッチョイ 5fc1-mtNr)
2024/09/05(木) 20:45:06.75ID:mduO1G690 今はアニメもCGで作る時代だけど、だからデッサン力なんて不要と言ってるのに近いなw
47デフォルトの名無しさん (ワッチョイ 27d1-XcdZ)
2024/09/06(金) 02:12:25.16ID:ObPC8Kit0 AIなら直接機械語書けそうだけど最低限人間がコードを読めるようにするためにCで出力するのが流行りそう
48デフォルトの名無しさん (ワッチョイ 7f0e-D/hx)
2024/09/06(金) 17:06:00.74ID:3sxDLHxZ0 もはやプログラマはAIにどう質問するかだけが求められてる時代
ビックデータが前提なのはわかってるけどchatAIと画像AIはマジでオーパーツだわとても0と1だけで実現されてる技術と思えん・・・
ビックデータが前提なのはわかってるけどchatAIと画像AIはマジでオーパーツだわとても0と1だけで実現されてる技術と思えん・・・
49デフォルトの名無しさん (ワントンキン MM3f-cmcv)
2024/09/06(金) 17:30:18.67ID:bUa4C6AFM ここはAIの質問スレになる予定です
50デフォルトの名無しさん (ワッチョイ 7fe0-bfwh)
2024/09/06(金) 17:59:38.15ID:wWap9ofG0 >>48
Cやアセンブラを知らなかったらコンピューター自体が魔法に思えるんだろうなw
Cやアセンブラを知らなかったらコンピューター自体が魔法に思えるんだろうなw
51デフォルトの名無しさん (ワッチョイ 8710-D/hx)
2024/09/06(金) 18:14:44.45ID:fzo/g0jk0 プログラム上での比較が、未だに変数2つの比較(if(A=B)とか )しかイメージ出来ないので
AIのアルゴリズムどころか、2つのサイズの違う画像比較ってのさえどうやるのか検討もつかん・・・。
AIのアルゴリズムどころか、2つのサイズの違う画像比較ってのさえどうやるのか検討もつかん・・・。
52デフォルトの名無しさん (ワッチョイ bf9c-H9U1)
2024/09/06(金) 18:37:17.18ID:4wqfzUPa0 3Blue1BrownJapanのディープラーニング解説動画
https://www.youtube.com/watch?v=tc8RTtwvd5U
現在chapter6まで和訳されてる(本家英語版は7が出た)
https://www.youtube.com/watch?v=tc8RTtwvd5U
現在chapter6まで和訳されてる(本家英語版は7が出た)
53デフォルトの名無しさん (ワッチョイ 7fe0-bfwh)
2024/09/06(金) 21:13:32.20ID:wWap9ofG054デフォルトの名無しさん (ワッチョイ 47b1-D/hx)
2024/09/06(金) 21:19:53.07ID:eMGejp5m0 点でしか見れない人に面を理解させる手法・・・
55デフォルトの名無しさん (ワッチョイ 274e-XcdZ)
2024/09/06(金) 21:46:42.59ID:ObPC8Kit0 この世界もほぼ陽子と中性子と電子だけで出来てるのにこれだけ複雑なんだから0と1だけで複雑な演算出来ても不思議ではない
56デフォルトの名無しさん (ワッチョイ 5fad-WCFq)
2024/09/06(金) 21:53:29.16ID:H8MSdYGz0 ようこちゃんとでんこちゃんは知っているけど
中性子って子は知らない
中性子って子は知らない
57デフォルトの名無しさん (ワンミングク MM3f-cmcv)
2024/09/06(金) 22:09:25.96ID:aKdHJjI6M 光子ちゃんも忘れないであげて
58デフォルトの名無しさん (ワッチョイ 5fc1-mtNr)
2024/09/07(土) 00:47:09.38ID:mFTEs+Pq0 0と1だけじゃないけどな
その他に位(くらい)という概念がある
これによって無限の数を表現できる
むしろ位の概念によって数が表現されている
それさえ有れば記号なんて何でもいい
その他に位(くらい)という概念がある
これによって無限の数を表現できる
むしろ位の概念によって数が表現されている
それさえ有れば記号なんて何でもいい
59デフォルトの名無しさん (ワッチョイ 47b1-D/hx)
2024/09/07(土) 20:51:59.47ID:XGt+Z3l/0 どこかの国だか村では両手の指の数以上を表現する言葉がないって話をどこかで・・・。
60デフォルトの名無しさん (ワンミングク MM3f-cmcv)
2024/09/07(土) 22:06:43.98ID:GNvzZpYIM ムカデは100進数で数えている
61デフォルトの名無しさん (ワッチョイ f94a-865n)
2024/09/08(日) 00:25:53.15ID:zd6RlSMM062デフォルトの名無しさん (ワッチョイ f94a-865n)
2024/09/08(日) 00:30:46.43ID:zd6RlSMM0 指を曲げる伸ばすの2通りとすると1023だが、指を完全に曲げる、伸ばす、半分まで伸ばす(曲げる)の3通りとすると3^10-1=59,048まで表現できるなw
63デフォルトの名無しさん (ワッチョイ 662a-Vk/b)
2024/09/08(日) 07:38:58.99ID:LXYiwE7e0 >>60
ヒトを含めた四肢類は4進法なの?
ヒトを含めた四肢類は4進法なの?
64デフォルトの名無しさん (ワッチョイ bd5f-FAeb)
2024/09/08(日) 10:08:59.05ID:mVbg4wOX065デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/08(日) 10:25:56.18ID:IhFVsGpe0 グワシは古語
66デフォルトの名無しさん (ワッチョイ a510-IFMZ)
2024/09/08(日) 15:41:04.82ID:aTNFTtUw0 とりあえず、他人の投稿で言ってもいない単語や解釈を勝手に加えてマウント取ろうとするのはどうかと思うぞ。
67デフォルトの名無しさん (ワッチョイ a6e0-RtM0)
2024/09/08(日) 23:23:27.00ID:6gnZvy5A0 問題はギャグとしてつまらないという点だ
68デフォルトの名無しさん (ワッチョイ fa2d-2PHd)
2024/09/09(月) 17:06:32.51ID:ft14UVke0 lvalueに関してエラーが出るんだけど、どうしてこれがだめなのかわからないです
#include <stdio.h>
int main()
{
char s[] = "hoge";
char t[100];
while (*t++ = *s++)
;
printf("%s", t);
}
#include <stdio.h>
int main()
{
char s[] = "hoge";
char t[100];
while (*t++ = *s++)
;
printf("%s", t);
}
69デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/09(月) 17:17:50.19ID:JnQxQHVK070はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/09(月) 17:19:13.64ID:XH4OT6yj0 >>68
s の型は char[5] 、 t の型は char[100] だというのはわかる?
だけど式に出てくる配列は原則として配列の先頭要素を指すポインタ (この場合に型でいえば char*) に型変換される。
変換後に出てくるポインタは rvalue なのでインクリメントの対象に出来ない。
rvalue ってのは式の評価をする間に一時的に生まれて評価が終わったら消えるものなので
仮にインクリメント出来たとしても何にも使えない。
配列が勝手にポインタに変換されるっていうのが変則的で分かり難いポイントだけど
これは C を使ってたら避けようがない。
s の型は char[5] 、 t の型は char[100] だというのはわかる?
だけど式に出てくる配列は原則として配列の先頭要素を指すポインタ (この場合に型でいえば char*) に型変換される。
変換後に出てくるポインタは rvalue なのでインクリメントの対象に出来ない。
rvalue ってのは式の評価をする間に一時的に生まれて評価が終わったら消えるものなので
仮にインクリメント出来たとしても何にも使えない。
配列が勝手にポインタに変換されるっていうのが変則的で分かり難いポイントだけど
これは C を使ってたら避けようがない。
71デフォルトの名無しさん (ワッチョイ 9e79-auhz)
2024/09/09(月) 18:22:38.82ID:zvC05GrM0 ポインタと同じ表記が使えるだけでポインタに変換されるわけではないぞ老害
72デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/09(月) 18:25:50.23ID:JnQxQHVK0 char *s = "hoge";
char t[100];
int i = 0;
while (*(t+i) = *s++)
i++;
sを配列ではなく、ポインタに変える、
tもポインタにしたいところだが、格納先確保が目的なら
先頭アドレスからのオフセット指定で格納する様に変更
char t[100];
int i = 0;
while (*(t+i) = *s++)
i++;
sを配列ではなく、ポインタに変える、
tもポインタにしたいところだが、格納先確保が目的なら
先頭アドレスからのオフセット指定で格納する様に変更
73デフォルトの名無しさん (ワッチョイ eaad-Pebh)
2024/09/09(月) 18:30:55.08ID:D7I9z5W00 それなら while (*(t+i) = *(s+i)) って書くかな
74デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/09(月) 18:36:50.90ID:JnQxQHVK0 s[]、t[100]と書いたとき、sやtはメモリー上の特定の位置を指す
ラベルのようなものなので書き換える事は出来ない。ポインタ定数とも言う。
一方ポインタ変数は、任意のアドレスを指す変数、変更も操作できる
constとか、突っ込まんでください
ラベルのようなものなので書き換える事は出来ない。ポインタ定数とも言う。
一方ポインタ変数は、任意のアドレスを指す変数、変更も操作できる
constとか、突っ込まんでください
75はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/09(月) 18:57:03.60ID:XH4OT6yj0 >>71
規格には「型変換する」と明瞭に書いてあって変換しないと解釈できる余地はない。
規格には「型変換する」と明瞭に書いてあって変換しないと解釈できる余地はない。
7668 (ワッチョイ fa2d-2PHd)
2024/09/10(火) 07:06:02.36ID:fwzKZR690 色々教えてくれてありがとう
s[]の先頭を指すポインタ*sを++で進めることができちゃったら
s[0]もズレちゃうのでだめだってことだよね
そりゃだめだわ
s[]の先頭を指すポインタ*sを++で進めることができちゃったら
s[0]もズレちゃうのでだめだってことだよね
そりゃだめだわ
77デフォルトの名無しさん (ワッチョイ 1e6e-Qzc4)
2024/09/10(火) 07:45:50.17ID:ZXVJVLjy0 s[], t[100]; って宣言したなら、s[idx], t[idx] って使おうよ
78デフォルトの名無しさん (ワッチョイ a6b5-RtM0)
2024/09/10(火) 08:09:53.27ID:oAzej4EH0 そこはこだわらんでもいいだろ
80デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/10(火) 10:14:17.88ID:WwqiNfks0 立て札は移動禁止です
81デフォルトの名無しさん (アウアウエー Sa52-t/33)
2024/09/10(火) 13:19:09.36ID:KGjTz1X0a >sやtは const
constっていつからあったか知らんけど
constない頃からsもtも*pや*qとは扱いが違ったんじゃね
constっていつからあったか知らんけど
constない頃からsもtも*pや*qとは扱いが違ったんじゃね
82はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/10(火) 14:04:37.40ID:rqI1GpSt0 lvalue の概念は K&R 1st の頃からあったよ。
lvalue という用語はちょっとどうなの……と思うけど。
Rust だと place と呼んでるみたいだね。
lvalue という用語はちょっとどうなの……と思うけど。
Rust だと place と呼んでるみたいだね。
83デフォルトの名無しさん (ワッチョイ eafd-BHET)
2024/09/10(火) 21:10:52.20ID:UL+jlunn0 お前は変な事ばかり言ってるからもう引っ込んどけよ
84デフォルトの名無しさん (ワッチョイ adba-mB8c)
2024/09/10(火) 21:22:40.00ID:OwUxLa4s0 ポインタそのものを変えないやつと
指す先を変えないやつの書き方で
未だに迷うっていう
指す先を変えないやつの書き方で
未だに迷うっていう
85はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/10(火) 21:35:00.77ID:rqI1GpSt0 キーワードを並べる順序で意味が変わるのは迷うけど
順序をどうならべても良い場合もそれはそれでびっくりする。
int const long foo;
みたいに変数を宣言して良い。
まあそんなことをするやつはいないと思うけど。
順序をどうならべても良い場合もそれはそれでびっくりする。
int const long foo;
みたいに変数を宣言して良い。
まあそんなことをするやつはいないと思うけど。
86デフォルトの名無しさん (ワッチョイ a6ee-865n)
2024/09/10(火) 22:53:26.23ID:BKdRZcpD0 consr char*は本当はchar const*と書くべきなんだよね
これでもコンパイルは通って同じ結果になる
読む時は右から読めばいい
pointer to const char
これだと指す先がconstなのが分かりやすい
ポインター自体をconstにするには
char* constとして、同じく右からconst pointer to charと読む
両方constは
char const* const
となるけど、最初のconstは左に書けるので
const char* const
とも書ける
これが分かれば迷う事は無くなる
これでもコンパイルは通って同じ結果になる
読む時は右から読めばいい
pointer to const char
これだと指す先がconstなのが分かりやすい
ポインター自体をconstにするには
char* constとして、同じく右からconst pointer to charと読む
両方constは
char const* const
となるけど、最初のconstは左に書けるので
const char* const
とも書ける
これが分かれば迷う事は無くなる
87デフォルトの名無しさん (ワッチョイ a6b2-Z1Qu)
2024/09/11(水) 01:20:44.10ID:ZbZmMQbl0 それ前橋氏のポインタ完全制覇で知った
88デフォルトの名無しさん (ワッチョイ a6b5-RtM0)
2024/09/11(水) 08:00:07.84ID:eq6A6T9x0 >>81
アセンブラにして考えるとわかりやすい
char s[] = "hoge";
アセンブラの表現↓
s:
.db "hoge¥0"
char *s = "hoge";
アセンブラの表現↓
s_org:
.db "hoge¥0"
s:
.dw s_org
上の場合書き換えようにもsには実体がない
アドレス定義ラベルでしかない
*ただし完全に最適化されると下も上と同じになる
アセンブラにして考えるとわかりやすい
char s[] = "hoge";
アセンブラの表現↓
s:
.db "hoge¥0"
char *s = "hoge";
アセンブラの表現↓
s_org:
.db "hoge¥0"
s:
.dw s_org
上の場合書き換えようにもsには実体がない
アドレス定義ラベルでしかない
*ただし完全に最適化されると下も上と同じになる
90はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/11(水) 09:19:23.27ID:Zm39E+090 大元の質問が >>68 なので低レイヤからの説明はあまり筋が良くないと思う。
エラーメッセージの意味を読み取れるようにならないから。
エラーメッセージの意味を読み取れるようにならないから。
91デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/11(水) 09:30:46.32ID:dQ20XCdF0 8ビットCPUのメモリ保護されてない頃だと
配列どころか、プログラムコードも書換できました笑
配列どころか、プログラムコードも書換できました笑
92デフォルトの名無しさん (ワッチョイ a510-IFMZ)
2024/09/11(水) 09:49:35.14ID:h52e7Ahm0 > sには実体がない、とはどういうことですか?
変数エリアに書き込まれていない数値、データ。
プログラム上で要求された時にコンパイル時や関数によってその都度作られる仕様・・・かな?しらんけど。
>91
>プログラムコードも書換できました
それはむしろ”技術”扱いだったな。
サブルーチンでジャンプ先やIOポートを書き換えて・・・て。
昔はCPU等のバグ利用がテクニックだったけど、今じゃバグの温床、セキュリティホール扱いだね。
変数エリアに書き込まれていない数値、データ。
プログラム上で要求された時にコンパイル時や関数によってその都度作られる仕様・・・かな?しらんけど。
>91
>プログラムコードも書換できました
それはむしろ”技術”扱いだったな。
サブルーチンでジャンプ先やIOポートを書き換えて・・・て。
昔はCPU等のバグ利用がテクニックだったけど、今じゃバグの温床、セキュリティホール扱いだね。
93デフォルトの名無しさん (ワッチョイ 1e3e-42jK)
2024/09/11(水) 15:02:12.18ID:DEx1pDDa0 こんだけいて>>77くらいしかまともな回答者がいないとかひどいなあ
94デフォルトの名無しさん (ブーイモ MM45-bJfQ)
2024/09/11(水) 15:25:16.11ID:1n/VD1trM そんなのこだわっても結局関数の引数で配列型では渡せないんだからその程度は受け入れて慣れたほうがいい
95デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/11(水) 15:58:54.52ID:dQ20XCdF0 ここは、「聞け」とはあるが、「回答する」とは書いていない
96デフォルトの名無しさん (ワッチョイ 1e45-Qzc4)
2024/09/11(水) 16:44:23.62ID:+qxKgs2P0 こっちが自然だろ
t[100]を*(t+idx)なんてやる方が何の拘りだよ
t[100]を*(t+idx)なんてやる方が何の拘りだよ
97デフォルトの名無しさん (ワッチョイ 5ec2-bJfQ)
2024/09/11(水) 16:55:25.58ID:tx1pt4w10 その程度どっちでもいい
配列は外部リンケージのときも注意が必要なんだよね
あまりそういう使い方しないから、すぐにはピンとこないや
あまりそういう使い方しないから、すぐにはピンとこないや
99デフォルトの名無しさん (ワッチョイ 65cd-RtM0)
2024/09/11(水) 22:04:51.93ID:+V4MmH6p0100デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/11(水) 23:11:00.81ID:dQ20XCdF0 > while (*(t+i) = *s++)
これは、
> while (*t++ = *s++)
;これがエラーになるのは何故かと言う質問から始まったからです
t++がエラーで、t+iなら大丈夫が理解できれば解決だと思う
ポインタの理解というのは壁にはなりますが、
乗り越えれば意外と簡単です、がんばれ!
これは、
> while (*t++ = *s++)
;これがエラーになるのは何故かと言う質問から始まったからです
t++がエラーで、t+iなら大丈夫が理解できれば解決だと思う
ポインタの理解というのは壁にはなりますが、
乗り越えれば意外と簡単です、がんばれ!
>>92 ありがとうございました(sには実態がない)
gcc -S test.c
で .s を出力して眺めてみると、そのような感じになっていました
最適化と、AT&Tのオペランドが逆なのに慣れず読みにくかったですが
"hoge" は「実体」が .data に置かれ、実行時にスタックにコピーされるのかと想像してましたが、実装がどうあれ、スタッフ上に "hoge" を置くための元を実体というのは違うと思いました
実際、"hoge" は .db でアロケートされず、4字は 32ビットの数値定数とされ、スタックに即値で転記されていました(実行時に生成されていました)
# とても伝わりにくいと思いますが…
gcc -S test.c
で .s を出力して眺めてみると、そのような感じになっていました
最適化と、AT&Tのオペランドが逆なのに慣れず読みにくかったですが
"hoge" は「実体」が .data に置かれ、実行時にスタックにコピーされるのかと想像してましたが、実装がどうあれ、スタッフ上に "hoge" を置くための元を実体というのは違うと思いました
実際、"hoge" は .db でアロケートされず、4字は 32ビットの数値定数とされ、スタックに即値で転記されていました(実行時に生成されていました)
# とても伝わりにくいと思いますが…
102はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/12(木) 08:54:43.60ID:TbaO6N6i0 誰も説明してなかったことに気づいた。
E1[E2] が (*((E1)+(E2))) と等価であるというルールがある。
E1[E2] が (*((E1)+(E2))) と等価であるというルールがある。
103デフォルトの名無しさん (ワッチョイ 8a5c-8qrK)
2024/09/12(木) 21:59:57.92ID:m7IlJoP80 それいにしえからのバカ発見器なんだが2024年になってもまだ動いてるとはC言語おそるべし
105デフォルトの名無しさん (ワッチョイ a6ee-865n)
2024/09/12(木) 23:43:09.62ID:sEtsUeoh0106デフォルトの名無しさん (ワッチョイ 65cd-RtM0)
2024/09/13(金) 08:23:17.89ID:ykZRrldI0 >>101
"hoge"は長さちょうど32ビットだから即値でスタックに書き込むようになってるということなら
最適化によってそこまで省略されてるわけでsに実体がない件とはあまり関係ないな
最適化オフにするかもっと長い文字列で実験してみては
"hoge"は長さちょうど32ビットだから即値でスタックに書き込むようになってるということなら
最適化によってそこまで省略されてるわけでsに実体がない件とはあまり関係ないな
最適化オフにするかもっと長い文字列で実験してみては
108はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 65e8-hr+9)
2024/09/13(金) 10:12:57.71ID:9XTDQHQm0 C の仕様は抽象機械の動作として記述される。
抽象機械の動作をどのように実際の機械と対応させるかは自由で、見かけ上の動作が同じならどういう機械語になってもいい。
生成された機械語から言語仕様を理解しようとすべきではないよ。
低レイヤプログラミングするならどう対応付くか知る必要がある場合もあるのは否定しないけど……
抽象機械の動作をどのように実際の機械と対応させるかは自由で、見かけ上の動作が同じならどういう機械語になってもいい。
生成された機械語から言語仕様を理解しようとすべきではないよ。
低レイヤプログラミングするならどう対応付くか知る必要がある場合もあるのは否定しないけど……
109デフォルトの名無しさん (ブーイモ MM45-bJfQ)
2024/09/13(金) 10:23:10.52ID:OBSQyTYbM その抽象機械の定義はしょせん後付け
c言語のソースから生成されるマシン語の想像が付くようになるのはいいこと
c言語のソースから生成されるマシン語の想像が付くようになるのはいいこと
110デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/13(金) 10:25:26.12ID:y2ap91b60 C言語ハンドコンパイラ
111はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 65e8-hr+9)
2024/09/13(金) 11:25:36.89ID:9XTDQHQm0112デフォルトの名無しさん (ワッチョイ a510-IFMZ)
2024/09/13(金) 11:46:29.60ID:HT/On1VB0 所詮部外者の推測。
113デフォルトの名無しさん (ワンミングク MM7a-k+ON)
2024/09/13(金) 12:46:10.11ID:CiewPVvpM 今日は患者が多いですね
114デフォルトの名無しさん (ブーイモ MM45-bJfQ)
2024/09/13(金) 12:53:56.59ID:OBSQyTYbM117はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-hr+9)
2024/09/13(金) 14:32:38.41ID:7dvxgxgq0 この場合に限っては言語仕様としての理屈もあんまり違わんけどな。
ただ、正式な用語を知ってると細かいことを調べやすいみたいなのはあるので便利。
ただ、正式な用語を知ってると細かいことを調べやすいみたいなのはあるので便利。
118デフォルトの名無しさん (JP 0H3e-voeu)
2024/09/13(金) 16:10:44.34ID:HymUJJD5H gccは配列に確保した短い文字列は最適化無しでもレジスターに載せてしまってるな
ポインター文字列は最適化してもレジスターには載らない
なので配列は配列として使った方が最適化で高速化される可能性があるという事だな
ポインター文字列は最適化してもレジスターには載らない
なので配列は配列として使った方が最適化で高速化される可能性があるという事だな
119はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/13(金) 16:26:39.79ID:7dvxgxgq0 ポインター文字列って変な言葉だな。
この場の造語だと思うけど
char *foo = "bar";
みたいなやつのことだよね?
文字列リテラルは静的記憶域期間 (寿命はプログラムの最初から最後まで) を持つオブジェクト。
どこかにある文字列をポインタで指しているという状況。
そのどこかにある文字は他のどこかから指し示されることもありうるので簡単には消えられない。
その一方で、配列の初期化子は配列を初期化する以外に使われる可能性がない。
この場の造語だと思うけど
char *foo = "bar";
みたいなやつのことだよね?
文字列リテラルは静的記憶域期間 (寿命はプログラムの最初から最後まで) を持つオブジェクト。
どこかにある文字列をポインタで指しているという状況。
そのどこかにある文字は他のどこかから指し示されることもありうるので簡単には消えられない。
その一方で、配列の初期化子は配列を初期化する以外に使われる可能性がない。
120デフォルトの名無しさん (アウアウエー Sa52-t/33)
2024/09/13(金) 16:36:31.22ID:bblj+c3pa121デフォルトの名無しさん (アウアウエー Sa52-t/33)
2024/09/13(金) 16:38:54.03ID:bblj+c3pa122デフォルトの名無しさん (JP 0H3e-voeu)
2024/09/13(金) 17:26:56.71ID:HymUJJD5H >>119
んなこたーない
char foo[] = "hoge";
char* bar = &foo[1]; /* 敢えてずらしてみる */
printf("bar -> %s\n", bar);
で中身は何度も参照されるぞ
gccで試してみたら敢えてずらしてポインターに代入されたとしても、レジスターに文字列を保持したままprintfに渡すというトリッキーなコードが生成されたw
スタックに文字列を書き込んでそのアドレスを渡してるっぽい
んなこたーない
char foo[] = "hoge";
char* bar = &foo[1]; /* 敢えてずらしてみる */
printf("bar -> %s\n", bar);
で中身は何度も参照されるぞ
gccで試してみたら敢えてずらしてポインターに代入されたとしても、レジスターに文字列を保持したままprintfに渡すというトリッキーなコードが生成されたw
スタックに文字列を書き込んでそのアドレスを渡してるっぽい
123デフォルトの名無しさん (JP 0H3e-voeu)
2024/09/13(金) 17:45:50.36ID:HymUJJD5H 短い配列文字列をポインターに代入したらレジスターに保持する最適化を諦めるかと思ったら、そうじゃなくて意地でもレジスターに保持したまま処理を進めるgccスゲーよw
clangの場合はポインターも配列も常に静的に文字列を定義したものを使ってた
clangの場合はポインターも配列も常に静的に文字列を定義したものを使ってた
124デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/13(金) 18:12:32.57ID:y2ap91b60 最近のCPUはレジスターに文字列格納できるんだな
何バイトくらいなら入るんだろうか
何バイトくらいなら入るんだろうか
125デフォルトの名無しさん (JP 0H3e-voeu)
2024/09/13(金) 18:26:19.17ID:HymUJJD5H gccの場合だと64bitだと8バイトだから最大7文字かなと思ったらレジスターを複数使ってでも載せようとしてたw
取り敢えず50文字まで試したけど全部レジスタに載ってた
でもこの辺はレジスタの空き具合にもよるのか?詳しくは分からん
取り敢えず50文字まで試したけど全部レジスタに載ってた
でもこの辺はレジスタの空き具合にもよるのか?詳しくは分からん
126デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/13(金) 18:41:27.03ID:y2ap91b60 何か執念みたいなのを感じました笑
127デフォルトの名無しさん (JP 0H3e-voeu)
2024/09/13(金) 18:50:06.89ID:HymUJJD5H スマン…間違えた…orz
正確にはアセンブリコードに書かれてると言うべきだった
movabsq $3833745473465760056, %rdx
movabsq $3978425819141910832, %rax
movq %rdx, 40(%rsp)
movabsq $3544395820347831604, %rdx
movq %rdx, 56(%rsp)
↑こんな感じで文字列が直値で表現されてて、スタックに積んで使ってた
だったら静的に確保した方が速い気がするけど、やっぱりレジスターから直接使う事が有るのか?
取り敢えずコンパイラーが出力するコードに深入りしない方が良いって事は分かったw
正確にはアセンブリコードに書かれてると言うべきだった
movabsq $3833745473465760056, %rdx
movabsq $3978425819141910832, %rax
movq %rdx, 40(%rsp)
movabsq $3544395820347831604, %rdx
movq %rdx, 56(%rsp)
↑こんな感じで文字列が直値で表現されてて、スタックに積んで使ってた
だったら静的に確保した方が速い気がするけど、やっぱりレジスターから直接使う事が有るのか?
取り敢えずコンパイラーが出力するコードに深入りしない方が良いって事は分かったw
128はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/13(金) 18:59:17.17ID:7dvxgxgq0129デフォルトの名無しさん (ワッチョイ 65cd-RtM0)
2024/09/13(金) 20:11:25.22ID:ykZRrldI0 速度の最適化か、生成されるオブジェクトの小ささかのトレードオフなんだろうね
テスト用のコードは小さいから、後者は気にせずゴリゴリやってるのかな…
テスト用のコードは小さいから、後者は気にせずゴリゴリやってるのかな…
131デフォルトの名無しさん (ワッチョイ fa2d-2PHd)
2024/09/13(金) 23:38:57.27ID:uRdGeQ4y0 世の中CやめてRustにしろだとか
OpenAIの新AIが競プロで上位1割のプログラマに匹敵とか言うじゃない
今更人間がCを続ける意義ってなんなんだろう
OpenAIの新AIが競プロで上位1割のプログラマに匹敵とか言うじゃない
今更人間がCを続ける意義ってなんなんだろう
132デフォルトの名無しさん (ワッチョイ 714e-/njq)
2024/09/14(土) 00:03:48.69ID:UIMFiyQN0 COBOLみたくロストテクノロジーを理解出来る貴重な人になれる
133はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-hr+9)
2024/09/14(土) 00:19:19.91ID:N2YvcTj50 低レイヤに関わる資料が C を前提に書かれていたりするのは普通のことなのでたとえ C でプログラミングしなくてもある程度は身に付いてないと困ることはあるだろう。
134デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 00:39:08.66ID:0gsw2riP0 >>128
初期化する以外に参照されてないってのはおかしいだろ
printfで中身が表示されてんだから
ポインター変数のbar経由で中身を参照してるけど、中身は初期化で渡された文字列そのものだ
そもそもリテラルが参照されてないという言い方もおかしい
リテラルは単なる定数の簡略表記に過ぎず、ソースコード上だけの用語だ
実行時に消えてると言いたいのか?
そんなわけない、全く消えてない
初期化する以外に参照されてないってのはおかしいだろ
printfで中身が表示されてんだから
ポインター変数のbar経由で中身を参照してるけど、中身は初期化で渡された文字列そのものだ
そもそもリテラルが参照されてないという言い方もおかしい
リテラルは単なる定数の簡略表記に過ぎず、ソースコード上だけの用語だ
実行時に消えてると言いたいのか?
そんなわけない、全く消えてない
135デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/14(土) 00:51:01.21ID:8t7wdnSS0136デフォルトの名無しさん (ワッチョイ 2a7c-9vXG)
2024/09/14(土) 08:27:14.72ID:QgTfRJpW0137はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 08:59:02.76ID:N2YvcTj50 >>134
> printfで中身が表示
意味が解らん。
表示されてる中身というのは foo の中身であってリテラルじゃないだろ。
> リテラルは単なる定数の簡略表記
整数リテラルなどは右辺値だが文字列リテラルに限っては左辺値。
文字列リテラルは実行フェイズにおいてオブジェクトとしての性質を持つということ。 (抽象機械の上では。)
ただし、この文字列リテラルが型変換された結果によって生まれるポインタはアドレス定数の要件を満たす。
> printfで中身が表示
意味が解らん。
表示されてる中身というのは foo の中身であってリテラルじゃないだろ。
> リテラルは単なる定数の簡略表記
整数リテラルなどは右辺値だが文字列リテラルに限っては左辺値。
文字列リテラルは実行フェイズにおいてオブジェクトとしての性質を持つということ。 (抽象機械の上では。)
ただし、この文字列リテラルが型変換された結果によって生まれるポインタはアドレス定数の要件を満たす。
138デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 10:32:56.64ID:0gsw2riP0139はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 10:49:21.06ID:N2YvcTj50 >>138
前述の通り整数リテラルは右辺値 (rvalue)。
文字列リテラルは例外的な存在だ。
まず、 C の用語では「オブジェクト」と「値」は違う意味を持つ。
メモリ上のビットパターンがオブジェクトで、値は式の結果だ。
(規格用語では data storage だがここではあえてカジュアルな用語で言うことにする。)
そして式の結果は lvalue と rvalue に区分される。
オブジェクトに結び付いている値が lvalue だと考えていい。
個々に規定があるので詳細は割愛するが、
式の中で変数名だとか単項 * 演算だとか [] とかがあればそれはメモリ上に存在してるのは明白だろ?
そういうのが lvalue 。
たとえば 1+3+5 みたいな式があれば途中で 4 という値が生じるが、これは「どこ」にある?
場所に結び付いておらず、式が終われば破棄されることになってる。
こういうのが rvalue 。
ちなみに lvalue も rvalue が要求される文脈では rvalue に変換される。 (メモリから値が読みだされる。)
前述の通り整数リテラルは右辺値 (rvalue)。
文字列リテラルは例外的な存在だ。
まず、 C の用語では「オブジェクト」と「値」は違う意味を持つ。
メモリ上のビットパターンがオブジェクトで、値は式の結果だ。
(規格用語では data storage だがここではあえてカジュアルな用語で言うことにする。)
そして式の結果は lvalue と rvalue に区分される。
オブジェクトに結び付いている値が lvalue だと考えていい。
個々に規定があるので詳細は割愛するが、
式の中で変数名だとか単項 * 演算だとか [] とかがあればそれはメモリ上に存在してるのは明白だろ?
そういうのが lvalue 。
たとえば 1+3+5 みたいな式があれば途中で 4 という値が生じるが、これは「どこ」にある?
場所に結び付いておらず、式が終われば破棄されることになってる。
こういうのが rvalue 。
ちなみに lvalue も rvalue が要求される文脈では rvalue に変換される。 (メモリから値が読みだされる。)
140はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 12:58:36.93ID:N2YvcTj50 >>138
このときの 1 というリテラルは (rvalue の) 1 を返す式で、その値が i にコピーされた後で寿命を終えて消滅する。
printf の引数の i で取り出される 1 は i に入っている 1 であってリテラルの 1 じゃない。
整数リテラルはあくまでも整数を返す (生成すると言ってもいいかも?) 式であって、メモリ上のどこかにあるオブジェクトというわけじゃない。
このときの 1 というリテラルは (rvalue の) 1 を返す式で、その値が i にコピーされた後で寿命を終えて消滅する。
printf の引数の i で取り出される 1 は i に入っている 1 であってリテラルの 1 じゃない。
整数リテラルはあくまでも整数を返す (生成すると言ってもいいかも?) 式であって、メモリ上のどこかにあるオブジェクトというわけじゃない。
141デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 13:32:49.89ID:0gsw2riP0142はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-hr+9)
2024/09/14(土) 13:40:20.14ID:N2YvcTj50143デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 13:43:47.04ID:0gsw2riP0144はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-hr+9)
2024/09/14(土) 13:55:39.65ID:N2YvcTj50145デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/14(土) 14:05:45.99ID:8t7wdnSS0 > char foo[] = "hoge";
> char* bar = &foo[1]; /* 敢えてずらしてみる */
> bar が参照しているのは文字列リテラルからコピーされた配列であって文字列リテラルではない。
説明がよく分からないが、barは、fooではなく、どこかにコピーした別の文字列なり配列を参照していると言うことか?
> char* bar = &foo[1]; /* 敢えてずらしてみる */
> bar が参照しているのは文字列リテラルからコピーされた配列であって文字列リテラルではない。
説明がよく分からないが、barは、fooではなく、どこかにコピーした別の文字列なり配列を参照していると言うことか?
146はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 14:20:52.41ID:N2YvcTj50 >>145
bar はどうでもいいよ。 それは要らん間接参照を入れて例としてよくわからんようになってるから
飛び飛びになってる私の書いてることをあらためてまとめると
・ char foo[] = "hoge"; といったような記述があれば "hoge" によって foo を初期化する。
・ このときの文字列リテラル "hoge" は foo を初期化するだけに使われて他からアクセスされる可能性がない。
・ 言語規格の建前上は文字列リテラルの寿命はプログラムの最初から最後までだが……
・ この場合は他からアクセスされる可能性がないから機械語レベルでは文字列リテラルは最適化で消えて (即値としてコードに埋め込んで) も問題にならない。
bar はどうでもいいよ。 それは要らん間接参照を入れて例としてよくわからんようになってるから
飛び飛びになってる私の書いてることをあらためてまとめると
・ char foo[] = "hoge"; といったような記述があれば "hoge" によって foo を初期化する。
・ このときの文字列リテラル "hoge" は foo を初期化するだけに使われて他からアクセスされる可能性がない。
・ 言語規格の建前上は文字列リテラルの寿命はプログラムの最初から最後までだが……
・ この場合は他からアクセスされる可能性がないから機械語レベルでは文字列リテラルは最適化で消えて (即値としてコードに埋め込んで) も問題にならない。
147デフォルトの名無しさん (ブーイモ MM0a-bJfQ)
2024/09/14(土) 16:37:38.90ID:kHQOYHTcM148はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-hr+9)
2024/09/14(土) 16:47:20.53ID:N2YvcTj50149デフォルトの名無しさん (ワッチョイ 8af5-/VPw)
2024/09/14(土) 17:01:46.57ID:5H/bnNk90 最適化でどうなるかを考えながらC書くくらいならもうアセンブリ書いたほうが良いと思う
150デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 17:07:34.51ID:0gsw2riP0 >>146
はちみつは文字列リテラルがアセンブリソースの段階で"hoge"と書かれてなければ消えてると思ってんだなw
例え命令コードの即値で書かれていても消えてる訳じゃないからー!残念!
だから話が噛み合わなかったんだw
まぁ強いて言えば、最適化でデータの表現法方を変えても構わないって言えば良い
はちみつは文字列リテラルがアセンブリソースの段階で"hoge"と書かれてなければ消えてると思ってんだなw
例え命令コードの即値で書かれていても消えてる訳じゃないからー!残念!
だから話が噛み合わなかったんだw
まぁ強いて言えば、最適化でデータの表現法方を変えても構わないって言えば良い
151デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 17:14:48.19ID:0gsw2riP0 x = 1; ← 最適化で消えても構わない
x = 2;
最適化で消えても構わないってこういうことを言うんだよ
char foo[] = "hoge";
"hoge"は消えて良い訳ないだろw
gccは実際、命令コードに文字列を埋め込んでスタックに生成してるが、その文字列はポインター変数を使えば参照可能だ
x = 2;
最適化で消えても構わないってこういうことを言うんだよ
char foo[] = "hoge";
"hoge"は消えて良い訳ないだろw
gccは実際、命令コードに文字列を埋め込んでスタックに生成してるが、その文字列はポインター変数を使えば参照可能だ
152はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 17:26:48.38ID:N2YvcTj50153はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 17:33:13.32ID:N2YvcTj50 >>151
> 参照可能だ
その時参照してるのはスタック上にある配列であって、文字列リテラルではないってのを俺は何度書けばいいんだ?
文字列リテラルは本来は「プログラムの開始から終わりまでの寿命を持つオブジェクト」としてあらねばならないのが、
実際には文字列リテラルではない形になってることを「消えてる」と表現したのは確かに微妙な表現だったかもしれないが、
有るべき場所から消えてるんだからそんくらいわかるだろ。
そもそも最初は char* foo = "hoge"; との対比で言ってたんだから。
> 参照可能だ
その時参照してるのはスタック上にある配列であって、文字列リテラルではないってのを俺は何度書けばいいんだ?
文字列リテラルは本来は「プログラムの開始から終わりまでの寿命を持つオブジェクト」としてあらねばならないのが、
実際には文字列リテラルではない形になってることを「消えてる」と表現したのは確かに微妙な表現だったかもしれないが、
有るべき場所から消えてるんだからそんくらいわかるだろ。
そもそも最初は char* foo = "hoge"; との対比で言ってたんだから。
154デフォルトの名無しさん (ワッチョイ 8a56-/VPw)
2024/09/14(土) 18:13:05.20ID:5H/bnNk90 はちみつ餃子の説明はたぶん、C++ の考え方が混ざっていないか
C で配列の初期化子に文字列リテラルが書けるのはあくまで文字列リテラル限定であって、それは式として扱われるのではなく、lvalue も rvalue もクソもないということだと思うが
C で配列の初期化子に文字列リテラルが書けるのはあくまで文字列リテラル限定であって、それは式として扱われるのではなく、lvalue も rvalue もクソもないということだと思うが
155はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 18:35:19.29ID:N2YvcTj50156デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 18:53:38.72ID:0gsw2riP0 >>153
その配列に格納されているデータが文字列リテラルから生成された文字列(の実体)だろ
厳密に言いたいなら、文字列リテラルはコンパイル時に存在さえしてれば良いものなんだよ
何しろ「リテラル」だから
それを生存期間だの実行時の実体とごっちゃにしてるから訳分かんないことになんだよ
コンパイル時にさえ存在してれば良いという事を実行時には消えてても良いとか言っちゃってんでしょ?
その配列に格納されているデータが文字列リテラルから生成された文字列(の実体)だろ
厳密に言いたいなら、文字列リテラルはコンパイル時に存在さえしてれば良いものなんだよ
何しろ「リテラル」だから
それを生存期間だの実行時の実体とごっちゃにしてるから訳分かんないことになんだよ
コンパイル時にさえ存在してれば良いという事を実行時には消えてても良いとか言っちゃってんでしょ?
157デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 19:03:33.67ID:0gsw2riP0 char foo[] = { 'h', 'o', 'g', 'e', 0 };
文字列リテラルは↑のシンタックスシュガーだ
初期化子は消えても構わないのか?
初期化子が生成した文字列は参照出来ないと言うのか?
文字列リテラルは↑のシンタックスシュガーだ
初期化子は消えても構わないのか?
初期化子が生成した文字列は参照出来ないと言うのか?
158デフォルトの名無しさん (ワッチョイ 8a56-/VPw)
2024/09/14(土) 19:10:37.88ID:5H/bnNk90 >>155
https://en.cppreference.com/w/c/language/array_initialization
ここ参考にしてたから文法定義の時点で式じゃないと思ってたけど、ちゃんと規格上は式としてのパースではあったね、すまない
改めて C99(でいいんだよね、6.7.8 ってことは)の draft 読んでみたけど、文字列リテラルで初期化できるのは 6.7.8.14,15 で特殊に定義された意味論であって、やっぱり式扱いじゃないんじゃないかね
https://en.cppreference.com/w/c/language/array_initialization
ここ参考にしてたから文法定義の時点で式じゃないと思ってたけど、ちゃんと規格上は式としてのパースではあったね、すまない
改めて C99(でいいんだよね、6.7.8 ってことは)の draft 読んでみたけど、文字列リテラルで初期化できるのは 6.7.8.14,15 で特殊に定義された意味論であって、やっぱり式扱いじゃないんじゃないかね
159はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-hr+9)
2024/09/14(土) 19:58:20.45ID:N2YvcTj50 >>154
結果的な挙動からするとどっちでも良いから書いてないだけかも。
結果的な挙動からするとどっちでも良いから書いてないだけかも。
160デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/14(土) 20:16:47.07ID:8t7wdnSS0 皆拘らずに使っているのに言うのもあれなんだが
C言語にはC++で言う参照はありません
C言語にはC++で言う参照はありません
161デフォルトの名無しさん (ワッチョイ a6b2-Z1Qu)
2024/09/14(土) 21:01:12.02ID:NQ2pFzob0 hogeは破棄されないって一人がんばってるID:0gsw2riP0を救済して差し上げたいが……自分も完全にわかってないのでできない。
162デフォルトの名無しさん (ワッチョイ 65cd-RtM0)
2024/09/14(土) 21:04:22.62ID:tDLmxNl+0 実在するのはfoo[]だけで
文字列"hoge"は破壊どころか最初からあっても無くてもいいというのがここまでにわかったことだろ
文字列"hoge"は破壊どころか最初からあっても無くてもいいというのがここまでにわかったことだろ
163デフォルトの名無しさん (ワッチョイ 7910-VVra)
2024/09/14(土) 22:15:49.35ID:zMI9sEnq0 配列と別に文字列もどこか別に確保しといて何の意味があるんだよ
この形で配列作る度に二倍メモリ食うことになるじゃないか
この形で配列作る度に二倍メモリ食うことになるじゃないか
164はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 22:32:05.03ID:N2YvcTj50 >>163
せやで。 だから最適化の余地があるという話をしてる。
せやで。 だから最適化の余地があるという話をしてる。
165デフォルトの名無しさん (ワッチョイ 6663-QZ+t)
2024/09/14(土) 22:34:31.27ID:8t7wdnSS0 ここで最適化の話は混ぜない方が良い
166デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 23:00:09.33ID:0gsw2riP0 >>163
clangは配列でも文字列リテラルは残ってるよ
ここって想像だけで語るアホばっかだなw
リテラルはコンパイル時のみに必要
それとは別に実行時にリテラルを実体化した値が存在する
基本的にrvalueだ
でないと当然初期化が出来ない
この値をはちみつは無視して語っている
clangは配列でも文字列リテラルは残ってるよ
ここって想像だけで語るアホばっかだなw
リテラルはコンパイル時のみに必要
それとは別に実行時にリテラルを実体化した値が存在する
基本的にrvalueだ
でないと当然初期化が出来ない
この値をはちみつは無視して語っている
167デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 23:04:40.23ID:0gsw2riP0 はちみつはリテラルはコンパイル時にのみ必要な事と、実行時には必要な初期値(rvalue)を最適化で命令コードに埋め込む事を消えたと表現して、ごっちゃにしてるアホ
これが結論
これが結論
168デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 23:11:36.67ID:0gsw2riP0 リテラルは参照されないと言ってるのがその証拠
そりゃコンパイル時にのみに必要なその場でデータ構造を表現するリテラルを、実行時に参照出来る訳ないだろw
それが出来るのはコードをデータとして表現してるLisp だけだ
C++のテンプレートでも無理
C++のconstevalなら可能になった
std::formatはそれで実装可能になった
実行時には初期化の為のrvalueが絶対に存在する
そりゃコンパイル時にのみに必要なその場でデータ構造を表現するリテラルを、実行時に参照出来る訳ないだろw
それが出来るのはコードをデータとして表現してるLisp だけだ
C++のテンプレートでも無理
C++のconstevalなら可能になった
std::formatはそれで実装可能になった
実行時には初期化の為のrvalueが絶対に存在する
169デフォルトの名無しさん (ワッチョイ a6e1-865n)
2024/09/14(土) 23:13:53.14ID:0gsw2riP0 constevalも文字列リテラルを参照可能なのはコンパイル時のみだった…
やっぱり真に実行時に文字列リテラルを参照可能なのはLisp だけだな
やっぱり真に実行時に文字列リテラルを参照可能なのはLisp だけだな
170デフォルトの名無しさん (ワッチョイ 8a56-/VPw)
2024/09/14(土) 23:40:13.14ID:5H/bnNk90 >>1 の C17 ドラフトのリンク C++17 のやつじゃん
次スレ立てるならこれに変えといて
https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf
次スレ立てるならこれに変えといて
https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf
171はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-IU9Y)
2024/09/14(土) 23:53:27.27ID:N2YvcTj50172デフォルトの名無しさん (ワッチョイ d7cd-qbvN)
2024/09/15(日) 00:57:56.19ID:/wZr5+b/0173デフォルトの名無しさん (ワッチョイ ffe1-1pYN)
2024/09/15(日) 01:17:55.27ID:STy65/7c0 >>171
> 実行フェイズに存在するオブジェクトだよ。
存在してんじゃねーかよ!
これが最適化で消えて良いかの話だよ!
gccの場合は命令コードに埋め込んでるけど、消えてる訳じゃないし、別のポインターから参照可能だ
> 実行フェイズに存在するオブジェクトだよ。
存在してんじゃねーかよ!
これが最適化で消えて良いかの話だよ!
gccの場合は命令コードに埋め込んでるけど、消えてる訳じゃないし、別のポインターから参照可能だ
174はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/15(日) 01:30:47.17ID:B6k8li/O0 >>173
配列とその初期化子として現れる文字列リテラルが別の存在だってことが俺が何度も書いてることだよ。
これがそんなに何度も何度も何度も何度も書かないと理解できないようなことか?
別のポインタは配列を指せるが、その初期化子として現れる文字列リテラルを指せるわけじゃない。
char* foo = "hoge";
のようなケースではポインタ foo は文字列リテラルを指してるということと対比しての話だぞ。
配列とその初期化子として現れる文字列リテラルが別の存在だってことが俺が何度も書いてることだよ。
これがそんなに何度も何度も何度も何度も書かないと理解できないようなことか?
別のポインタは配列を指せるが、その初期化子として現れる文字列リテラルを指せるわけじゃない。
char* foo = "hoge";
のようなケースではポインタ foo は文字列リテラルを指してるということと対比しての話だぞ。
175デフォルトの名無しさん (ワッチョイ ffe1-1pYN)
2024/09/15(日) 01:32:35.13ID:STy65/7c0 ちなみに「文字列リテラル」が「実行時」に存在してる訳では全くない
はちみつはそこを勘違いしてる
静的記憶期間というのはスコープの事だ
まぁエクステントと言った方が正確だが
それはコンパイラーが理解できるものだが、それと「実行時」に存在する値を結びつけてはいけないし関係無い
DLLだとしたら静的記憶期間の変数も実行時には存在しない可能性もある
スレッドローカルストレージの変数もそうだな
要するに文字列リテラルで生成されたデータは実行時には確実にアクセス可能で、消えてるなんて全くあり得ない
それをずっと言ってる
はちみつはそこを勘違いしてる
静的記憶期間というのはスコープの事だ
まぁエクステントと言った方が正確だが
それはコンパイラーが理解できるものだが、それと「実行時」に存在する値を結びつけてはいけないし関係無い
DLLだとしたら静的記憶期間の変数も実行時には存在しない可能性もある
スレッドローカルストレージの変数もそうだな
要するに文字列リテラルで生成されたデータは実行時には確実にアクセス可能で、消えてるなんて全くあり得ない
それをずっと言ってる
176デフォルトの名無しさん (ワッチョイ ffe1-1pYN)
2024/09/15(日) 01:38:12.52ID:STy65/7c0 >>174
> 文字列リテラルを指せるわけじゃない。
はい、これが間違いの全て
文字列リテラルはコンパイラーだけが理解できる「構文」に過ぎない
それを実行時にさせないとはこれいかに?w
文字列リテラルは「実行時」には何て名前になってんだ?
配列でもないぞ
配列に代入される前のrvalueの事だ
まぁ文字列は例外的にlvalueにもなれるが、rvalueであることには違いない
> 文字列リテラルを指せるわけじゃない。
はい、これが間違いの全て
文字列リテラルはコンパイラーだけが理解できる「構文」に過ぎない
それを実行時にさせないとはこれいかに?w
文字列リテラルは「実行時」には何て名前になってんだ?
配列でもないぞ
配列に代入される前のrvalueの事だ
まぁ文字列は例外的にlvalueにもなれるが、rvalueであることには違いない
177デフォルトの名無しさん (ワッチョイ 9f56-3vlU)
2024/09/15(日) 01:45:15.62ID:hg9QOZOF0 >>171
なんかいろいろ書いたけど最終的には自分もそれで合っていると思う
実用上は正直どこで役に立つのかあまり思いつかないが、規格上どういう建て付けになってるのかはとりあえず理解できたかも
というか、実用上あんまり役に立つわけじゃないから今まで調べもしなかったというか
規格上は「リテラル」は存在せず integer/enumeration/floating/character は定数なんですね
それで定数は記憶域期間を持たない
文字列リテラルは静的記憶域期間を持つ
複合リテラルは関数本体の外か中かに応じて静的/自動記憶域期間を持つ、と
うーんでもなあ
某言語でいきなり &1 とか書けるの知ってたら別に定数にも記憶域期間持たせればいいじゃんとか思っちゃうなあ
とりあえずそうなっているというだけか
なんかいろいろ書いたけど最終的には自分もそれで合っていると思う
実用上は正直どこで役に立つのかあまり思いつかないが、規格上どういう建て付けになってるのかはとりあえず理解できたかも
というか、実用上あんまり役に立つわけじゃないから今まで調べもしなかったというか
規格上は「リテラル」は存在せず integer/enumeration/floating/character は定数なんですね
それで定数は記憶域期間を持たない
文字列リテラルは静的記憶域期間を持つ
複合リテラルは関数本体の外か中かに応じて静的/自動記憶域期間を持つ、と
うーんでもなあ
某言語でいきなり &1 とか書けるの知ってたら別に定数にも記憶域期間持たせればいいじゃんとか思っちゃうなあ
とりあえずそうなっているというだけか
178はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/15(日) 01:46:17.50ID:B6k8li/O0 >>175
> 静的記憶期間というのはスコープの事
ちがう。 記憶域期間はオブジェクトの寿命の区分。
6.2.4 を参照のこと。
寿命の区分が設定されている以上はオブジェクト (メモリ上のどこかにある) のこと。
> 文字列リテラルで生成されたデータは実行時には確実にアクセス可能で、消えてるなんて全くあり得ない
関数 (C のプログラムは関数の集合なので実質的にプログラムの全て) はオブジェクトではない。
私が「消える」と表現したのはこの意識があったからだが、機械語のレベルでどこかには存在するという意味ではそりゃ存在するだろう。
(同じ内容が連続する配列だったらループで書き込むような形にすることもあるかもしれない。)
配列の初期化子としての文字列リテラルは本来あるべき場所 (オブジェクト) から最適化で消えてるし、ポインタで指すことは出来ない。
> 静的記憶期間というのはスコープの事
ちがう。 記憶域期間はオブジェクトの寿命の区分。
6.2.4 を参照のこと。
寿命の区分が設定されている以上はオブジェクト (メモリ上のどこかにある) のこと。
> 文字列リテラルで生成されたデータは実行時には確実にアクセス可能で、消えてるなんて全くあり得ない
関数 (C のプログラムは関数の集合なので実質的にプログラムの全て) はオブジェクトではない。
私が「消える」と表現したのはこの意識があったからだが、機械語のレベルでどこかには存在するという意味ではそりゃ存在するだろう。
(同じ内容が連続する配列だったらループで書き込むような形にすることもあるかもしれない。)
配列の初期化子としての文字列リテラルは本来あるべき場所 (オブジェクト) から最適化で消えてるし、ポインタで指すことは出来ない。
179はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/15(日) 01:53:34.48ID:B6k8li/O0180デフォルトの名無しさん (ワッチョイ ffe1-1pYN)
2024/09/15(日) 01:58:39.53ID:STy65/7c0 >>178
> ちがう。 記憶域期間はオブジェクトの寿命の区分。
だからエクステントと書いてんだろ!
もしかして理解出来なかったか?
> 配列の初期化子としての文字列リテラルは本来あるべき場所 (オブジェクト) から最適化で消えてるし
本来あるべき場所(オブジェクト)って何だよ?!
目茶苦茶だなw
これがコンパイラーと実行時に存在すべき値(rvalue)をごっちゃにした成れの果てだなw
> ちがう。 記憶域期間はオブジェクトの寿命の区分。
だからエクステントと書いてんだろ!
もしかして理解出来なかったか?
> 配列の初期化子としての文字列リテラルは本来あるべき場所 (オブジェクト) から最適化で消えてるし
本来あるべき場所(オブジェクト)って何だよ?!
目茶苦茶だなw
これがコンパイラーと実行時に存在すべき値(rvalue)をごっちゃにした成れの果てだなw
181デフォルトの名無しさん (ワッチョイ ffe1-1pYN)
2024/09/15(日) 02:33:43.11ID:STy65/7c0 初期化に使われた(文字列)リテラルが実行時にrvalueになったものに名前を付けるべきだな
これは最適化でも消えることはない(当たり前だが…)
名前がないとまたリテラルは消えるから参照出来ない野郎が発生しかねないw
これは最適化でも消えることはない(当たり前だが…)
名前がないとまたリテラルは消えるから参照出来ない野郎が発生しかねないw
182デフォルトの名無しさん (スッップ Sdbf-2MD7)
2024/09/15(日) 12:24:08.15ID:WkBCL5VYd >>174
>char* foo = "hoge";
>
>のようなケースではポインタ foo は文字列リテラルを指してる
その表現が間違ってる。
fooは静的記憶域を指してるが正しい。
intptr_t *bar = 0xAABB;
この場合数値リテラルを指すなんて言わんだろ。
>char* foo = "hoge";
>
>のようなケースではポインタ foo は文字列リテラルを指してる
その表現が間違ってる。
fooは静的記憶域を指してるが正しい。
intptr_t *bar = 0xAABB;
この場合数値リテラルを指すなんて言わんだろ。
>>char* foo = "hoge";
>>
>>のようなケースではポインタ foo は文字列リテラルを指してる
>
>その表現が間違ってる。
>fooは静的記憶域を指してるが正しい。
彼も文字列リテラルは静的記憶域に置かれると言ってなかったっけ
僕にはこの2つの違いが分からないや
勘違いだったらごめんなさい
>>
>>のようなケースではポインタ foo は文字列リテラルを指してる
>
>その表現が間違ってる。
>fooは静的記憶域を指してるが正しい。
彼も文字列リテラルは静的記憶域に置かれると言ってなかったっけ
僕にはこの2つの違いが分からないや
勘違いだったらごめんなさい
184デフォルトの名無しさん (ブーイモ MM8f-GITO)
2024/09/15(日) 16:04:15.59ID:7leD3hDGM もっと中身のある話しようぜ
185デフォルトの名無しさん (ワッチョイ 9794-z7on)
2024/09/15(日) 17:53:23.56ID:V70NGKYC0186デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/15(日) 18:13:20.02ID:/tCGodXOd それだな
187デフォルトの名無しさん (ワッチョイ d7cd-qbvN)
2024/09/15(日) 21:42:32.09ID:/wZr5+b/0 ちなみに
int main(int argc, char *argv[])
と定義しても
argvは++できる
int main(int argc, char *argv[])
と定義しても
argvは++できる
188デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/15(日) 23:27:23.69ID:dUpBu3ui0 main の引数だけど、人によって好みがある
*argv[]だったり、 **argvだったり、
さすがにargv[][]はいないと思う
*argv[]だったり、 **argvだったり、
さすがにargv[][]はいないと思う
189はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/16(月) 08:22:23.81ID:JwEVxA0h0190はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/16(月) 08:28:07.90ID:JwEVxA0h0 >>182-183
静的記憶域期間ってのは静的+記憶域期間なんだよ。 静的記憶域+期間じゃないんだよ。
まあ静的記憶域期間を持つオブジェクトが配置されている場所を静的記憶域と呼んでもカジュアルな場面ではそんなに不自然ではないとは思うけど。
実装上は専用のセクションに配置するのが普通だし。
静的記憶域期間ってのは静的+記憶域期間なんだよ。 静的記憶域+期間じゃないんだよ。
まあ静的記憶域期間を持つオブジェクトが配置されている場所を静的記憶域と呼んでもカジュアルな場面ではそんなに不自然ではないとは思うけど。
実装上は専用のセクションに配置するのが普通だし。
191デフォルトの名無しさん (ワッチョイ 776e-SKTh)
2024/09/16(月) 08:30:39.50ID:+a4Swf1f0 ここまでのまとめ
Cは生産性が低い
C使いも生産性が低い
Cは生産性が低い
C使いも生産性が低い
192デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/16(月) 10:51:57.39ID:yKwOC4kA0 ID:+a4Swf1f0 は、言語に何使おうと生産性が低そう
193デフォルトの名無しさん (ワッチョイ ff2a-48Tr)
2024/09/16(月) 11:29:42.22ID:0nzerU0W0194デフォルトの名無しさん (ワッチョイ 1751-z7on)
2024/09/16(月) 12:43:08.20ID:T6H9+ne50 >>189
変更可能な左辺値に配列型は含まれないからそれとは違うん?いつポインタに型変換されてんの?
変更可能な左辺値に配列型は含まれないからそれとは違うん?いつポインタに型変換されてんの?
195はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/16(月) 13:26:14.08ID:JwEVxA0h0 >>194
6.3.2.1 より
> 左辺値がsizeof演算子のオペランド,単項&演算子のオペランド,又は文字配列を初期化するのに使われる文字列リテラルである場合を除いて,
> 型“〜型の配列”をもつ式は,型“〜型へのポインタ”の式に型変換する。
式として出てくる配列は一部の例外を除けば問答無用で変換されるので ++ のオペランドに配列が出てくるときも変換後のポインタ (rvalue) に対する演算 (実際には出来ないけど) として解釈されるということでいいと思う。
6.3.2.1 より
> 左辺値がsizeof演算子のオペランド,単項&演算子のオペランド,又は文字配列を初期化するのに使われる文字列リテラルである場合を除いて,
> 型“〜型の配列”をもつ式は,型“〜型へのポインタ”の式に型変換する。
式として出てくる配列は一部の例外を除けば問答無用で変換されるので ++ のオペランドに配列が出てくるときも変換後のポインタ (rvalue) に対する演算 (実際には出来ないけど) として解釈されるということでいいと思う。
196デフォルトの名無しさん (ワッチョイ 1751-z7on)
2024/09/16(月) 14:56:21.22ID:T6H9+ne50197はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/16(月) 16:28:24.01ID:JwEVxA0h0 >>196
C には配列の要素を指すポインタとは別に配列を指すポインタというものもある。
こんなことが出来る。
int foo[10];
int (*bar)[10] = &foo;
このときの bar の型は int(*)[10] ということになるわけだが……。
型情報として長さが含まれるのはかえって邪魔だ。
大抵の配列を受け取る関数 (str系やmem系など) は配列の大きさが固定ではないから。
配列の先頭要素で配列を代表させる (それが簡単な記法にする) ほうが都合がよかったんじゃないかと思う。
配列全体をひとつの値として扱いたい場合のほうが少ないだろうという判断もそれなりに合理的じゃないかな。
いまどきの言語 (Go とか Rust とか) は範囲を表すスライスという概念を導入して解決してるけど、
C の登場時期だと 2 ワードのオブジェクトを基本型にするのってなんかヤじゃない? と思ったとしても仕方ない。
C には配列の要素を指すポインタとは別に配列を指すポインタというものもある。
こんなことが出来る。
int foo[10];
int (*bar)[10] = &foo;
このときの bar の型は int(*)[10] ということになるわけだが……。
型情報として長さが含まれるのはかえって邪魔だ。
大抵の配列を受け取る関数 (str系やmem系など) は配列の大きさが固定ではないから。
配列の先頭要素で配列を代表させる (それが簡単な記法にする) ほうが都合がよかったんじゃないかと思う。
配列全体をひとつの値として扱いたい場合のほうが少ないだろうという判断もそれなりに合理的じゃないかな。
いまどきの言語 (Go とか Rust とか) は範囲を表すスライスという概念を導入して解決してるけど、
C の登場時期だと 2 ワードのオブジェクトを基本型にするのってなんかヤじゃない? と思ったとしても仕方ない。
198デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/16(月) 17:22:11.94ID:udznqyd1d >>190
横からすまんが、記憶域期間って言葉も変
横からすまんが、記憶域期間って言葉も変
199デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/16(月) 17:23:46.99ID:udznqyd1d200デフォルトの名無しさん (ワッチョイ bf79-MnYn)
2024/09/16(月) 17:29:54.17ID:E0fXFEgV0 この糞コテは半端知識のかまちょだからNGやスルー推奨
201はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-6w0d)
2024/09/16(月) 18:10:03.54ID:JwEVxA0h0 >>199
こっちは根拠になる規格の文面を提示してるんだから違うというなら違うと思う根拠を提示して。
こっちは根拠になる規格の文面を提示してるんだから違うというなら違うと思う根拠を提示して。
202デフォルトの名無しさん (アウアウウー Sa5b-E6+g)
2024/09/16(月) 18:57:26.00ID:ISRAyNkZa >>188
そらargv[][]では誤りだもんな
そらargv[][]では誤りだもんな
203デフォルトの名無しさん (アウアウエー Sadf-N1Zj)
2024/09/16(月) 21:32:46.16ID:NNTpe0yPa >>187
たしかに関数の引数だと違うんだな
https://ideone.com/MR7Vqm
#include <stdio.h>
char *hoge(char fuga[10])
{
++fuga;
return fuga;
}
int main(void) {
char hage[10] = {0};
char *p = hoge(hage);
printf("%p, %p\n", hage, p);
return 0;
}
// もちろん ++hage は出来ない
https://ideone.com/xEP42d
たしかに関数の引数だと違うんだな
https://ideone.com/MR7Vqm
#include <stdio.h>
char *hoge(char fuga[10])
{
++fuga;
return fuga;
}
int main(void) {
char hage[10] = {0};
char *p = hoge(hage);
printf("%p, %p\n", hage, p);
return 0;
}
// もちろん ++hage は出来ない
https://ideone.com/xEP42d
204デフォルトの名無しさん (ワッチョイ bf4f-NiVF)
2024/09/16(月) 22:10:35.73ID:hHcIxSUD0 >>197
流石に言ってる事が的外れ過ぎるのでもうちょっと勉強した方がいいと思うよ
流石に言ってる事が的外れ過ぎるのでもうちょっと勉強した方がいいと思うよ
恥ずかしながら、静的記憶域期間(で合ってるのか?)という言葉を知らなくて、ライフタイムは「静的」に含意されているのかと思ったワ…
しかし、記憶域期間って違和感あるなぁ
しかし、記憶域期間って違和感あるなぁ
わけわからん
>>205は撤回します
>>205は撤回します
207はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/16(月) 22:43:01.97ID:JwEVxA0h0 >>203
余談だけど配列だけじゃなくて関数型も関数ポインタ型に調整されるよ。
余談だけど配列だけじゃなくて関数型も関数ポインタ型に調整されるよ。
208デフォルトの名無しさん (ワッチョイ 9f7c-2MD7)
2024/09/16(月) 22:52:59.17ID:TDYyKtgo0 >>201
規格に配列は常にポインタに変換されるなんて書いて無いぞ。
規格に配列は常にポインタに変換されるなんて書いて無いぞ。
209デフォルトの名無しさん
2024/09/16(月) 23:00:53.05ID:f3T7KT8T0210デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/16(月) 23:10:52.64ID:yKwOC4kA0 >char *hoge(char fuga[10])
こう書いてあっても、関数内で10を使う訳ではない
関数内で仮に100個めの要素アクセスするロジック書いてもエラーにはならない
(実行時にはエラーになると思う、多分)
だから、
>char *hoge(char fuga[])
添え字無しにしても良いことになる
こう書いてあっても、関数内で10を使う訳ではない
関数内で仮に100個めの要素アクセスするロジック書いてもエラーにはならない
(実行時にはエラーになると思う、多分)
だから、
>char *hoge(char fuga[])
添え字無しにしても良いことになる
211デフォルトの名無しさん (ワッチョイ d7cd-qbvN)
2024/09/17(火) 01:04:31.11ID:BokinMog0 >>210
元々ローカルでchar hage[10];と定義して10以上をアクセスしてもコンパイル時にはエラーにならないでしょ
引数に[10]と書くとしたら可読性のため(この関数では[0~9]までアクセスする可能性があると明示するため)
元々ローカルでchar hage[10];と定義して10以上をアクセスしてもコンパイル時にはエラーにならないでしょ
引数に[10]と書くとしたら可読性のため(この関数では[0~9]までアクセスする可能性があると明示するため)
212デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/17(火) 10:15:58.36ID:9gub94Dsd __FILE__ とか __LINE__ は大文字なのになんで __func__ は小文字なん?
213デフォルトの名無しさん (アウアウエー Sadf-N1Zj)
2024/09/17(火) 10:17:16.72ID:TMGdiCOOa 範囲の問題じゃなくて
++hage または hage++ が出来るか出来ないかが問題なんです
++hage または hage++ が出来るか出来ないかが問題なんです
214デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/17(火) 11:06:41.56ID:bX/ekV+z0 一見配列を受け渡ししているように見えるけれど、
実際はポインターとして受け渡ししているってことでしょ
実際はポインターとして受け渡ししているってことでしょ
215はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d70f-6w0d)
2024/09/17(火) 11:56:03.91ID:FRc2ySeD0 >>212
__func__ はマクロではないからだと思う。
__func__ はマクロではないからだと思う。
216デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/17(火) 12:47:41.54ID:bX/ekV+z0 #include <stdio.h>
char hage[10] = {0};
char *hoge(void)
{
// ++hage; // error '++' には左辺値が必要です。
// return hage;
return &hage[1];
}
int main(void) {
char *p = hoge();
printf("%p, %p\n", hage, p);
return 0;
}
char hage[10] = {0};
char *hoge(void)
{
// ++hage; // error '++' には左辺値が必要です。
// return hage;
return &hage[1];
}
int main(void) {
char *p = hoge();
printf("%p, %p\n", hage, p);
return 0;
}
217デフォルトの名無しさん (アウアウエー Sadf-N1Zj)
2024/09/17(火) 13:07:46.14ID:TMGdiCOOa >>214
そんなことは判ってるよ
(char hage[10]) で hage++ または ++hage 出来ちゃってる(ように観える)のが問題なんでしょ
関数の引数は (char hage[]) または (char *hage) のみにすれば良かった
(char hage[10]) はどうみても蛇足(結局境界テストされてないし)
そんなことは判ってるよ
(char hage[10]) で hage++ または ++hage 出来ちゃってる(ように観える)のが問題なんでしょ
関数の引数は (char hage[]) または (char *hage) のみにすれば良かった
(char hage[10]) はどうみても蛇足(結局境界テストされてないし)
218デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/17(火) 13:11:47.81ID:bX/ekV+z0 問題だと思う人は、使わないようにしましょう
開発サイトでそういうルールを用意するのも手です
開発サイトでそういうルールを用意するのも手です
219デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/17(火) 17:17:11.73ID:9gub94Dsd >>215
納得しました。
納得しました。
220デフォルトの名無しさん (ワッチョイ 9ffd-NiVF)
2024/09/17(火) 20:17:27.08ID:dLWvmxgr0 >>197
そもそもstr系mem系はアドレスを受け取るんであって配列を受け取る関数ではないっていう勘違いがあるんだけど
それはともかく大きさがどうのとかなんちゃらが都合がいいとか、本当にC言語でなんかプログラムを書いた事あるの?
そもそもstr系mem系はアドレスを受け取るんであって配列を受け取る関数ではないっていう勘違いがあるんだけど
それはともかく大きさがどうのとかなんちゃらが都合がいいとか、本当にC言語でなんかプログラムを書いた事あるの?
221デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/17(火) 20:58:19.23ID:9gub94Dsd 俺は尻より胸派なんだよね。
222デフォルトの名無しさん (ワッチョイ d7cd-qbvN)
2024/09/18(水) 00:42:28.78ID:wcwImUMc0 >>217
この場合に限らずcでは範囲チェックなどされないでしょ
必要なら自分でチェックするのが原則
void aaa(char hage[10],int idx)
{
if((UINT)idx < sizeof(hage)/sizeof(hage[0]))
printf("%d=%d¥n",idx,hage[idx]);
else
printf("%dは範囲外だhage¥n",idx);
}
これなら[10]に意味が出る
この場合に限らずcでは範囲チェックなどされないでしょ
必要なら自分でチェックするのが原則
void aaa(char hage[10],int idx)
{
if((UINT)idx < sizeof(hage)/sizeof(hage[0]))
printf("%d=%d¥n",idx,hage[idx]);
else
printf("%dは範囲外だhage¥n",idx);
}
これなら[10]に意味が出る
223デフォルトの名無しさん (ワッチョイ bfee-GITO)
2024/09/18(水) 01:22:58.84ID:9DvoA/Ly0 ド素人w
224デフォルトの名無しさん (ワッチョイ d712-IGT5)
2024/09/18(水) 05:59:54.60ID:Y3+kk9yU0 >>222
c faq 6.21 (英文が詳しい)
https://c-faq.com/aryptr/aryparmsize.html
>>207 の'調整'は'adjust'だろう
N1256を'adjust'で検索するのじゃ
Look, a new day has begun.
c faq 6.21 (英文が詳しい)
https://c-faq.com/aryptr/aryparmsize.html
>>207 の'調整'は'adjust'だろう
N1256を'adjust'で検索するのじゃ
Look, a new day has begun.
225デフォルトの名無しさん (ワッチョイ d710-SKTh)
2024/09/18(水) 07:51:55.61ID:9Z5pFVfx0 8/16bit時代の1バイトでも、1ステップでも減らせってのを経験した人と
最近の可読性、移植性、安全性優先設計が当たり前世代とのギャップ。
最近の可読性、移植性、安全性優先設計が当たり前世代とのギャップ。
226デフォルトの名無しさん (ワッチョイ bf32-GITO)
2024/09/18(水) 08:59:57.51ID:9DvoA/Ly0 ギャップの問題じゃねーから
文脈すら理解できないじじいはすっこんでろ
文脈すら理解できないじじいはすっこんでろ
227デフォルトの名無しさん (ワッチョイ 5701-vU+L)
2024/09/18(水) 09:30:25.30ID:Qk7JHPx80 専門板によくいるアスペだな
228デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/18(水) 10:34:45.37ID:UYQxUcxO0 225 は釣りでしょう
230デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/18(水) 13:15:29.42ID:UYQxUcxO0 釣りだか天然だか、分からなくなってきた 笑
231はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L)
2024/09/18(水) 13:35:28.77ID:td/rS/wM0 今どきの統合開発環境を使ってるなら変数の型くらい見れると思うけれど
古典的な手法としてあえてエラーにしてメッセージを読むという型の確認方法がある。
void foo(char bar[10]) {}
int main(void) { int baz = foo; }
こんなコードをたとえば gcc でコンパイルを試みると
error: initialization of 'int' from 'void (*)(char *)' makes integer from pointer without a cast
というエラーになる。
foo の型が void (*)(char *) であることがわかる。
foo は関数型の式 (関数指示子) なので暗黙に関数ポインタに型変換されているのと
bar に相当する箇所の型が char* になってるのがわかる。
古典的な手法としてあえてエラーにしてメッセージを読むという型の確認方法がある。
void foo(char bar[10]) {}
int main(void) { int baz = foo; }
こんなコードをたとえば gcc でコンパイルを試みると
error: initialization of 'int' from 'void (*)(char *)' makes integer from pointer without a cast
というエラーになる。
foo の型が void (*)(char *) であることがわかる。
foo は関数型の式 (関数指示子) なので暗黙に関数ポインタに型変換されているのと
bar に相当する箇所の型が char* になってるのがわかる。
233デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/18(水) 14:54:11.13ID:LEoKOQZWd >>222
>この場合に限らずcでは範囲チェックなどされないでしょ
>必要なら自分でチェックするのが原則
>
>void aaa(char hage[10],int idx)
>{
> if((UINT)idx < sizeof(hage)/sizeof(hage[0]))
> printf("%d=%d¥n",idx,hage[idx]);
> else
> printf("%dは範囲外だhage¥n",idx);
>}
>
>これなら[10]に意味が出る
printf("%uz\n", sizeof(hage)/sizeof(hage[0]));
の結果ってどんな値表示されるの?
>この場合に限らずcでは範囲チェックなどされないでしょ
>必要なら自分でチェックするのが原則
>
>void aaa(char hage[10],int idx)
>{
> if((UINT)idx < sizeof(hage)/sizeof(hage[0]))
> printf("%d=%d¥n",idx,hage[idx]);
> else
> printf("%dは範囲外だhage¥n",idx);
>}
>
>これなら[10]に意味が出る
printf("%uz\n", sizeof(hage)/sizeof(hage[0]));
の結果ってどんな値表示されるの?
234デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/18(水) 14:56:10.00ID:LEoKOQZWd 書式のとのuzじゃなくてzuだっけ?zだけでよかったっけ?
ま、主旨はそこじゃないからいっか。
ま、主旨はそこじゃないからいっか。
235はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d7e2-6w0d)
2024/09/18(水) 15:47:33.09ID:3rwci13t0 >>233
sizeof(char*)/sizeof(char) ということになる。
sizeof(char) は確実に 1 だから結果としては単に char* のバイト数ってことだね。
この場合は「『もし 10 に意味があるとしても』境界チェックはされないことに変わりないのでなんの役にも立ってない。 役に立てるとしたらここまで書かなきゃならない」というのが主旨なのであくまでもしもの話。
実際の値はどうでもよい文脈だと思う。
sizeof(char*)/sizeof(char) ということになる。
sizeof(char) は確実に 1 だから結果としては単に char* のバイト数ってことだね。
この場合は「『もし 10 に意味があるとしても』境界チェックはされないことに変わりないのでなんの役にも立ってない。 役に立てるとしたらここまで書かなきゃならない」というのが主旨なのであくまでもしもの話。
実際の値はどうでもよい文脈だと思う。
236デフォルトの名無しさん (ワッチョイ d7cd-qbvN)
2024/09/18(水) 16:33:08.44ID:wcwImUMc0237デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/18(水) 16:43:30.74ID:LEoKOQZWd238デフォルトの名無しさん (ワッチョイ d7cd-qbvN)
2024/09/18(水) 18:00:34.97ID:wcwImUMc0 'ここの10は意味ありませんよ'
って警告を出してもいいじゃんってことでしょ
それなら例えば
typedef char HAGE_TBL[10];
void foo(HAGE_TBL hage) {}
(毎回10とか書くのは危険なのでこういう使い方が多いと思う)
などとした場合に毎回警告が出てうざいことになるんじゃないか
って警告を出してもいいじゃんってことでしょ
それなら例えば
typedef char HAGE_TBL[10];
void foo(HAGE_TBL hage) {}
(毎回10とか書くのは危険なのでこういう使い方が多いと思う)
などとした場合に毎回警告が出てうざいことになるんじゃないか
239デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/18(水) 18:07:31.49ID:UYQxUcxO0 警告ならまだ笑っていられるが、
明らかに書いた奴の意図とは違って誤動作してるだろ
明らかに書いた奴の意図とは違って誤動作してるだろ
240デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/18(水) 18:30:29.69ID:LEoKOQZWd >>222 のバグを晒すスレはここですか?
241デフォルトの名無しさん (スプッッ Sd3f-2MD7)
2024/09/18(水) 18:46:04.44ID:LEoKOQZWd C言語は難しいな
242デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/18(水) 20:53:02.12ID:UYQxUcxO0 void aaa()の中で、
引数で渡された値が何かを確かめて見ると良い
それと、 sizeof(hage)やsizeof(hage[0])の値も
プログラム書いた人の意図としては、
sizeof(hage)/sizeof(hage[0])が10になるはずなんだが
さてさていくつだろうか?
引数で渡された値が何かを確かめて見ると良い
それと、 sizeof(hage)やsizeof(hage[0])の値も
プログラム書いた人の意図としては、
sizeof(hage)/sizeof(hage[0])が10になるはずなんだが
さてさていくつだろうか?
243デフォルトの名無しさん (ワッチョイ 9f7c-2MD7)
2024/09/19(木) 00:15:21.84ID:5H+5PGV10 もうやめて!>>222 のライフはゼロよ!
244デフォルトの名無しさん (ワッチョイ 9f1e-S785)
2024/09/19(木) 06:32:15.59ID:zdFAvN1E0 本人が新たなネタを出してくるんだもん。
>>238 でもわざわざ
typedef char HAGE_TBL[10];
ってやっておきながら、なんで
void foo(HAGE_TBL hage)
なの? 構造体と同じように
void foo(HAGE_TBL *hage)
ってしてみたら新たな何かが見えてこないかい?
>>238 でもわざわざ
typedef char HAGE_TBL[10];
ってやっておきながら、なんで
void foo(HAGE_TBL hage)
なの? 構造体と同じように
void foo(HAGE_TBL *hage)
ってしてみたら新たな何かが見えてこないかい?
245デフォルトの名無しさん (ブーイモ MMbf-GITO)
2024/09/19(木) 15:36:15.62ID:bQAYIDF0M cは洗練された型システム持ってないんだからそんなところ頑張っても無駄なんだよ
この悟りに至って始めて脱初級
原則語るならそれからにしてくれ
この悟りに至って始めて脱初級
原則語るならそれからにしてくれ
246デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/19(木) 15:40:30.12ID:cPR7xA8Z0 Cは一部の洗練された型システム持つ言語よりも遙かに自由度が高い
そこが分かってようやく中級レベル
あとは本人の努力次第で空も飛べるし海も潜れる
そこが分かってようやく中級レベル
あとは本人の努力次第で空も飛べるし海も潜れる
247デフォルトの名無しさん (ワッチョイ bfda-GITO)
2024/09/19(木) 15:50:31.78ID:c2v//UgT0 おいおい
そのぶん危険なんだから持ち上げる部分でもないだろ
お前も初級
そのぶん危険なんだから持ち上げる部分でもないだろ
お前も初級
248デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/19(木) 17:19:57.71ID:cPR7xA8Z0 ナイフは危険だが有用
不器用者は使わない方が良い
不器用者は使わない方が良い
249デフォルトの名無しさん (ワッチョイ b766-qbvN)
2024/09/19(木) 17:44:18.26ID:8NYyNXbk0250デフォルトの名無しさん (ワッチョイ bf29-GITO)
2024/09/19(木) 20:28:27.65ID:c2v//UgT0251デフォルトの名無しさん (ワッチョイ ff63-y7MN)
2024/09/19(木) 20:47:13.84ID:cPR7xA8Z0 そんなに怖がるなよ
食われるわけじゃないんだから
食われるわけじゃないんだから
252デフォルトの名無しさん (アウアウエー Sadf-3vlU)
2024/09/19(木) 21:11:19.13ID:/CBFTgYsa >>245
悟った人は全部void*
悟った人は全部void*
253デフォルトの名無しさん (ワッチョイ ff4c-KlCL)
2024/09/19(木) 21:52:43.48ID:j90utfqH0 文字も数字も全部intでいいやん
254デフォルトの名無しさん (アウアウエー Sadf-3vlU)
2024/09/19(木) 21:56:05.41ID:/CBFTgYsa getch() は int
255デフォルトの名無しさん (ワッチョイ 9f1e-S785)
2024/09/20(金) 07:15:20.20ID:dn4N5ANS0 >>249
それが不満なようだから「HAGE_TBL * にしたら何ができるか考えてみては?」ということでは?
それが不満なようだから「HAGE_TBL * にしたら何ができるか考えてみては?」ということでは?
256デフォルトの名無しさん (ササクッテロ Sp47-i443)
2024/09/24(火) 10:26:30.49ID:/2yiAcKTp 昔のコンピュータはメモリー少ないから、intで文字持つなんて贅沢だったんだよ
257デフォルトの名無しさん (ワッチョイ 1e2b-VArp)
2024/09/24(火) 11:12:54.47ID:CARZyoOh0 次のジジイの的外れな言いたいだけコメントを先取り
intは16bit以上だぞ
intは16bit以上だぞ
258デフォルトの名無しさん (ササクッテロ Sp47-i443)
2024/09/24(火) 11:31:50.53ID:QMMOdtbOp 違うよ、intは処理系依存だから8ビットの場合もある
259デフォルトの名無しさん (スプッッ Sd52-L8o3)
2024/09/24(火) 11:49:08.20ID:vvKB2ofDd 規格書読め
260デフォルトの名無しさん (ブーイモ MM32-VArp)
2024/09/24(火) 11:54:52.88ID:kMxfGMRcM 次のジジイ
getcharがなぜintを返すか
getcharがなぜintを返すか
261デフォルトの名無しさん (ワッチョイ d6f5-K4S3)
2024/09/24(火) 19:39:49.05ID:tv/lKhnI0 >>174
> char* foo = "hoge";
>
> のようなケースではポインタ foo は文字列リテラルを指してる
(単に端折っただけかもしれないけれど、)文字列リテラルに関してCには非常に込み入った事情(Rationale Rev. 5.10 6.4.5 冒頭-l.26, N1256 Annex J.5.5)があり、厳密に言えば foo は "hoge" によって初期化された無名の配列を指している(N1256 6.7.8-32)。
C99RationaleV5.10
https://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf
テンプレ入りキボンヌ
>>皆の衆
ともあれ、込み入った事情に該当しなければ
const char afoo[] = "hoge";
あるいは
const char * const ccfoo = "hoge";
場合によって
const char *cfoo = "hoge";
と書いて、うっかり書き換え防止に勇往邁進するのじゃ。
> char* foo = "hoge";
>
> のようなケースではポインタ foo は文字列リテラルを指してる
(単に端折っただけかもしれないけれど、)文字列リテラルに関してCには非常に込み入った事情(Rationale Rev. 5.10 6.4.5 冒頭-l.26, N1256 Annex J.5.5)があり、厳密に言えば foo は "hoge" によって初期化された無名の配列を指している(N1256 6.7.8-32)。
C99RationaleV5.10
https://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf
テンプレ入りキボンヌ
>>皆の衆
ともあれ、込み入った事情に該当しなければ
const char afoo[] = "hoge";
あるいは
const char * const ccfoo = "hoge";
場合によって
const char *cfoo = "hoge";
と書いて、うっかり書き換え防止に勇往邁進するのじゃ。
262261 (ワッチョイ d6f5-K4S3)
2024/09/24(火) 19:51:57.01ID:tv/lKhnI0 >>158
件の意味論は 6.7.8-32 を介して 6.7.8-14,15 に帰結するように思われる一方で、文字列リテラルが 6.4.5-5 で自ら初期化した(やはり)無名の配列の代名詞だとすると 6.7.8-11 が適用されるという解釈も成り立ちそう。
char *gfoo1 = "hoge"; // (1)
char *gfoo2 = "hoge"; // (2)
void f() {
char *foo1 = "hoge"; // (3)
char *foo2 = "hoge"; // (4)
}
>>261 で触れた文字列リテラル書き換え派の場合、(1)〜(4)は別物なので、各々初期化しなければならないため前者の解釈。この時、(3), (4)が automatic storage duration でも良いように 6.7.8-32 では storage duration を定めていないのだと思う。
他方、文字列リテラル不変派の場合、(1)〜(4)は同一で良いので、初期化を一回で済ませて後者の解釈。
結局、前後者両方の解釈が出来るようになっているように見える。
件の意味論は 6.7.8-32 を介して 6.7.8-14,15 に帰結するように思われる一方で、文字列リテラルが 6.4.5-5 で自ら初期化した(やはり)無名の配列の代名詞だとすると 6.7.8-11 が適用されるという解釈も成り立ちそう。
char *gfoo1 = "hoge"; // (1)
char *gfoo2 = "hoge"; // (2)
void f() {
char *foo1 = "hoge"; // (3)
char *foo2 = "hoge"; // (4)
}
>>261 で触れた文字列リテラル書き換え派の場合、(1)〜(4)は別物なので、各々初期化しなければならないため前者の解釈。この時、(3), (4)が automatic storage duration でも良いように 6.7.8-32 では storage duration を定めていないのだと思う。
他方、文字列リテラル不変派の場合、(1)〜(4)は同一で良いので、初期化を一回で済ませて後者の解釈。
結局、前後者両方の解釈が出来るようになっているように見える。
263デフォルトの名無しさん (ワッチョイ de79-sesJ)
2024/09/25(水) 19:34:19.49ID:8eNfi/Op0 まだやってるキモ…
いくら話題無いからってこれは誰も幸せにならない
いくら話題無いからってこれは誰も幸せにならない
264デフォルトの名無しさん (ワッチョイ 727d-rNKn)
2024/09/25(水) 23:05:12.18ID:YARyzAjz0 ええんちゃう別に
どうせ5chに答えを求めてやって来る人なんてもうおらんのやし
どうせ5chに答えを求めてやって来る人なんてもうおらんのやし
265デフォルトの名無しさん (ワッチョイ 1663-7cnK)
2024/09/25(水) 23:07:41.16ID:1jKu7Jqx0 青い鳥を探してます
ここに来れば教えてくれると聞いて来ました
ここに来れば教えてくれると聞いて来ました
266デフォルトの名無しさん (ワッチョイ 022d-w5sm)
2024/09/26(木) 09:49:09.10ID:oesVQEFi0 PythonとかC++のスレで規格持ち出して言い合いしてるのを見たことないが
何故かここではよく起こるな
何故かここではよく起こるな
267デフォルトの名無しさん (ワッチョイ ebbe-i443)
2024/09/26(木) 10:19:33.26ID:944iXMZC0 Cなんてのは対象CPUの違いとかでも標準とかけ離れた実装して来るのにね
268デフォルトの名無しさん (アウアウエー Saaa-rNKn)
2024/09/26(木) 10:58:03.72ID:R5lWYvWFa >>264
これ++
これ++
269はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e332-Pvcq)
2024/09/26(木) 12:24:13.03ID:B+Au+yIB0270デフォルトの名無しさん (ワントンキン MM42-LD7o)
2024/09/26(木) 14:46:28.31ID:oxN8/Up7M perlあたりで頼む
271デフォルトの名無しさん (ワッチョイ 022d-w5sm)
2024/09/26(木) 16:39:09.57ID:oesVQEFi0 >>269
君の問題点は規格読んでるの間違えてるとこだよ
君の問題点は規格読んでるの間違えてるとこだよ
272はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e332-Pvcq)
2024/09/26(木) 16:48:57.66ID:B+Au+yIB0273デフォルトの名無しさん (ワッチョイ 63e3-VZV9)
2024/09/26(木) 23:55:11.03ID:jCy2QsTx0 >>235
これの1行目は文字列長によらず固定値にならない?
char* と char[] を区別できてないように思う
// これは (ヌル文字を含む) 4バイトのデータがスタック上に作られる
// sizeof(a1) の結果は文字列数により変わる
char a1[] = "abc";
// こう書いた場合、文字列の実体は静的な領域 (テキスト領域) に確保され、
// a2にはそのアドレスが渡される。
// sizeof(a2) はポインタのサイズであり、値は文字列長によらず固定
char* a2 = "abc";
これの1行目は文字列長によらず固定値にならない?
char* と char[] を区別できてないように思う
// これは (ヌル文字を含む) 4バイトのデータがスタック上に作られる
// sizeof(a1) の結果は文字列数により変わる
char a1[] = "abc";
// こう書いた場合、文字列の実体は静的な領域 (テキスト領域) に確保され、
// a2にはそのアドレスが渡される。
// sizeof(a2) はポインタのサイズであり、値は文字列長によらず固定
char* a2 = "abc";
274デフォルトの名無しさん (ワッチョイ 63e3-VZV9)
2024/09/27(金) 00:02:43.63ID:ju4/Ooeg0 char* でも char[] でも、a[n] と書けばn文字目を参照するのは変わらない
これはポインタの [] 演算子は「ポインタをn個進めた位置の要素を参照する」ため、結果的には配列と変わらないから
だけど前述の a1 と a2 は違う型なので、そこは注意が必要
たぶん VS Code でC言語の拡張を入れてれば、上記のように書いた変数のところにカーソルを当たるとヒントが出るので、それで確認できると思う
それか実際に動かして sizeof の結果を見るか
これはポインタの [] 演算子は「ポインタをn個進めた位置の要素を参照する」ため、結果的には配列と変わらないから
だけど前述の a1 と a2 は違う型なので、そこは注意が必要
たぶん VS Code でC言語の拡張を入れてれば、上記のように書いた変数のところにカーソルを当たるとヒントが出るので、それで確認できると思う
それか実際に動かして sizeof の結果を見るか
275はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e332-Pvcq)
2024/09/27(金) 00:16:01.96ID:dEIfxD4z0276デフォルトの名無しさん (ワッチョイ d27c-tavX)
2024/09/27(金) 00:20:08.16ID:qUi2cfOF0 もう >>222 を晒すのはやめてあげて......
277デフォルトの名無しさん (ワッチョイ 1663-7cnK)
2024/09/27(金) 00:22:55.64ID:xb00usC10 222は釣りでしょう
278はちみつ餃子 ◆8X2XSCHEME (ワッチョイ e332-Pvcq)
2024/09/27(金) 00:23:40.17ID:dEIfxD4z0279デフォルトの名無しさん (ワッチョイ 63e3-VZV9)
2024/09/27(金) 07:31:58.10ID:ju4/Ooeg0280デフォルトの名無しさん (ワッチョイ 2b65-ebyo)
2024/10/15(火) 13:20:49.22ID:+DYHSMWW0 初歩的な質問で申し訳ないんだけど
プログラムをユーザーの入力によって一時停止させるのってどうしたら良い?
pauseで入力待ちにするとかフラグを間に挿入するとかではなくユーザーからの入力があった場合のみ一時停止したい
プログラムをユーザーの入力によって一時停止させるのってどうしたら良い?
pauseで入力待ちにするとかフラグを間に挿入するとかではなくユーザーからの入力があった場合のみ一時停止したい
281デフォルトの名無しさん (ブーイモ MM7f-tEjz)
2024/10/15(火) 13:29:34.78ID:WZg8MP0BM まずメインの処理を一時停止可能な作りに変える
282デフォルトの名無しさん (ワッチョイ 3b80-C3fO)
2024/10/15(火) 13:32:02.14ID:nD7e5Gmv0283デフォルトの名無しさん (ブーイモ MM7f-tEjz)
2024/10/15(火) 13:32:39.39ID:WZg8MP0BM あとコンソールプログラムなのか?
環境を正確に書きな
環境を正確に書きな
284はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fb32-aM+D)
2024/10/15(火) 13:37:01.44ID:C4BE9tl00285デフォルトの名無しさん (ワッチョイ 2b65-ebyo)
2024/10/15(火) 13:47:40.16ID:+DYHSMWW0286デフォルトの名無しさん (ササクッテロ Sp0f-0GI8)
2024/10/15(火) 13:51:52.41ID:9xoHIO4Lp 環境依存でデバイス依存だからなぁ
287デフォルトの名無しさん (ブーイモ MM7f-tEjz)
2024/10/15(火) 14:34:22.10ID:UH8LrgydM やりたいことがnon blockingでgetcharしたいってことだとするとwindowsだconsole apiを使う
例えばwindowsのreadline互換実装であるwineditlineを見るといい
例えばwindowsのreadline互換実装であるwineditlineを見るといい
288デフォルトの名無しさん (ブーイモ MM7f-tEjz)
2024/10/15(火) 14:36:11.97ID:UH8LrgydM ただめんどうなので今回のように止めたいだけならこういう簡易的なやりかたがある
ttps://stackoverflow.com/questions/21294713/non-blocking-i-o-in-c-windows
ttps://stackoverflow.com/questions/21294713/non-blocking-i-o-in-c-windows
289デフォルトの名無しさん (ワッチョイ 2b65-ebyo)
2024/10/15(火) 20:06:43.67ID:+DYHSMWW0290はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fb32-UOzH)
2024/10/15(火) 21:39:15.79ID:C4BE9tl00291デフォルトの名無しさん (ワッチョイ 0b02-xPbt)
2024/10/30(水) 01:54:25.92ID:BzmMNap80 いにしえの議論掘り返してすまんが、>>182の例示による説明が最も本質を突いてるように思う、感謝のレス
文字列リテラルは配列初期化子の構文糖でありながら、また文字列をも表すという二義性を持つ、という云うのはあくまで言語設計の為の汚いハックでしかなかろ?
文字列リテラルは配列初期化子の構文糖でありながら、また文字列をも表すという二義性を持つ、という云うのはあくまで言語設計の為の汚いハックでしかなかろ?
292デフォルトの名無しさん (ササクッテロ Spc5-O2Yz)
2024/10/30(水) 10:28:23.97ID:BRGgIRAsp Cの変数の型指定なんて気休めだからなぁ
293デフォルトの名無しさん (ワッチョイ 0b02-xPbt)
2024/11/01(金) 06:24:42.85ID:+lXxXu7p0 気休めじゃなくて気疲れの間違いだろ
長さやsignednessでわけわからん変換しやがるバグの根源と言ってもいい
長さやsignednessでわけわからん変換しやがるバグの根源と言ってもいい
294デフォルトの名無しさん (ワッチョイ 8b63-IjZm)
2024/11/01(金) 11:11:58.05ID:YgeQjLzz0 訳が理解できるようになるまで、お前は使用禁止
295デフォルトの名無しさん (ワッチョイ 622d-CyeO)
2024/11/03(日) 13:27:09.33ID:N1lOck0q0 https://togetter.com/li/1471386
こんな事本当にあるのか?
こんな事本当にあるのか?
296デフォルトの名無しさん (ワッチョイ f6b7-UxC2)
2024/11/03(日) 13:36:34.35ID:e8fWHn4Q0 もともとバグってたのを対処療法で回避しただけじゃねーの?
そんな驚愕するほどのこととは思わんな
スペースは文字列に加えるってことだろ
そんな驚愕するほどのこととは思わんな
スペースは文字列に加えるってことだろ
297デフォルトの名無しさん (ワッチョイ 5e63-kEEx)
2024/11/03(日) 13:45:35.99ID:WzNRcFfL0 ちゃんとソースを公開すればみんなで治してくれるよ
298デフォルトの名無しさん (アウアウエー Sada-GGiU)
2024/11/03(日) 16:06:15.80ID:XxnHrPnRa バイバイおさるさん
299デフォルトの名無しさん (ワッチョイ 3679-NO1F)
2024/11/03(日) 17:27:36.06ID:4RaSizfZ0 char []s = "うんこ"
s[20] = 0; // どっか判り難いとこにこんなのが紛れてる
回答「(sに)もっとスペースを追加して!」
s[20] = 0; // どっか判り難いとこにこんなのが紛れてる
回答「(sに)もっとスペースを追加して!」
300デフォルトの名無しさん (ワッチョイ 5e63-kEEx)
2024/11/03(日) 17:39:48.03ID:WzNRcFfL0 どこか知らない国で "うんこ" が40バイトくらいある所があったりして
301はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f532-JeGG)
2024/11/03(日) 19:33:15.95ID:/vDzNoeA0 業務だとヨソの担当のモジュールに口出しするのがめんどいから対処療法で握りつぶすみたいなことはあるのかもしれん。
s("※んこ"の値)は読み取り専用になるんじゃないかな
処理系によるかもしれないけど
処理系によるかもしれないけど
303デフォルトの名無しさん (ワッチョイ 3679-NO1F)
2024/11/04(月) 01:39:12.77ID:rgFUj3k30 >「ここにスペースを入れてみて」「もっと沢山、もっともっと」
この辺りコピペ怪文書にしか思えないんだが
境界チェックしない言語ならありふれたバグだし、元文書はちんぽとかだったんじゃないだろうか
この辺りコピペ怪文書にしか思えないんだが
境界チェックしない言語ならありふれたバグだし、元文書はちんぽとかだったんじゃないだろうか
304デフォルトの名無しさん (ササクッテロラ Sp79-P7MY)
2024/11/04(月) 13:45:59.93ID:UGhFqLBmp どうせメモリーリークだろうな
データ位置を変えると現象が変わるなんて典型的だろ
データ位置を変えると現象が変わるなんて典型的だろ
>>302
誤りでした
誤りでした
306デフォルトの名無しさん (ワッチョイ 5e63-kEEx)
2024/11/04(月) 14:02:09.24ID:SHEOgeyw0 パンパース当てるのが正しい
307デフォルトの名無しさん (ワッチョイ 3679-NO1F)
2024/11/04(月) 20:44:45.70ID:rgFUj3k30 おむつってあんま進化してないよな
吸収率だとか漏れだとかそんなのは上がってるだろうが、基本的な機能は変わらない
介護業界でも排泄介助っていう高齢者の汚物処理って割と大変な部類だと思うんだが
そろそろおもつ革命を起こさないと業界崩壊するんじゃないの
プログラミングでなんとかできませんかね
吸収率だとか漏れだとかそんなのは上がってるだろうが、基本的な機能は変わらない
介護業界でも排泄介助っていう高齢者の汚物処理って割と大変な部類だと思うんだが
そろそろおもつ革命を起こさないと業界崩壊するんじゃないの
プログラミングでなんとかできませんかね
308デフォルトの名無しさん (ワッチョイ 3679-NO1F)
2024/11/04(月) 20:51:48.25ID:rgFUj3k30 高齢者に限らず若い子でもうんこ漏らす時は漏らすし、そういう緊急時にも安心できるぐらいのものがそろそろ欲しいな
紙ベースで吸収率だとかで脳が退化してるおむつメーカーではおむつ革命はとても期待できないだろう
紙ベースで吸収率だとかで脳が退化してるおむつメーカーではおむつ革命はとても期待できないだろう
309デフォルトの名無しさん (ワッチョイ 0920-pds3)
2024/11/04(月) 21:52:48.49ID:lap6rdZH0 介護対象に飲ませるうんこがあまり臭くなくなる薬みたいな技術は進化してるぞ
310デフォルトの名無しさん (ワッチョイ f532-Q1tn)
2024/11/04(月) 22:10:34.76ID:TtMQ1IOc0 薬で臭くなくしたうんこだからといって介護対象に飲ませるのはどうかと思うぞ。
311デフォルトの名無しさん (ワッチョイ 0920-pds3)
2024/11/04(月) 22:15:25.35ID:lap6rdZH0 >>295
こんなんじゃね
#include <stdio.h>
#include <string.h>
#include <limits.h>
int main(void)
{
char s[] = ""; // ←スペースを11個入れる
sprintf(s, "%d", INT_MIN);
puts(s);
}
こんなんじゃね
#include <stdio.h>
#include <string.h>
#include <limits.h>
int main(void)
{
char s[] = ""; // ←スペースを11個入れる
sprintf(s, "%d", INT_MIN);
puts(s);
}
312デフォルトの名無しさん (ワッチョイ 0920-pds3)
2024/11/04(月) 22:17:04.25ID:lap6rdZH0 >>310
完全に臭くなくなる訳ではないのでおk
完全に臭くなくなる訳ではないのでおk
313デフォルトの名無しさん (ワッチョイ 01c3-bxGr)
2024/11/04(月) 22:57:47.13ID:nqjJRhEX0 ニホンゴ ムズカシイネ
314デフォルトの名無しさん (ワッチョイ 92ad-guIA)
2024/11/05(火) 05:14:52.21ID:srt1vo+S0 逆に考えるんだ。うんこはどうしても出てしまう。だったらそれはそのままにしておけ。
介護する側がそれを気にせず処理出来るのであれば問題は消滅する。だから介護者が
それを気にならなくなるような精神に効く薬を作れば良いんだ。
介護する側がそれを気にせず処理出来るのであれば問題は消滅する。だから介護者が
それを気にならなくなるような精神に効く薬を作れば良いんだ。
315デフォルトの名無しさん
2024/11/05(火) 06:59:24.91ID:tCS75Iej0 >>295って実行時エラーの話なのかコンパイル時エラーの話なのかもわからなくない?
316デフォルトの名無しさん (ワッチョイ b5b4-8Jbz)
2024/11/05(火) 15:17:41.47ID:wPeW8RQX0 NASAはネットなんてなかった1970年代にボイジャー1号打ち上げて
240億km離れててもプログラムを送受信してるのに俺らときたら
240億km離れててもプログラムを送受信してるのに俺らときたら
317デフォルトの名無しさん (アウアウエー Sada-GGiU)
2024/11/05(火) 21:46:02.31ID:JaQWNq5Na どうみても脳筋エラー
318デフォルトの名無しさん (ワッチョイ 8101-Q1tn)
2024/11/05(火) 21:49:31.93ID:qHb8dozk0 脳筋がCを使いません
319デフォルトの名無しさん (ワッチョイ 5e63-kEEx)
2024/11/05(火) 22:03:42.83ID:MR2KM4Hj0 240億kmの伝書鳩
320デフォルトの名無しさん (ワッチョイ 3679-NO1F)
2024/11/06(水) 09:37:06.45ID:csbv8Qbd0 1970年代にもテレビやラヂオはあったわけでね…
321デフォルトの名無しさん (ワッチョイ 5e63-kEEx)
2024/11/07(木) 17:53:15.92ID:RjbHlnZn0 1960年代はラジオ少年が秋葉原詣でしてたな
322デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/07(木) 22:04:17.92ID:E5qLHtEE0 質問失礼
LPTSTR lptStr = TEXT("テスト");
って書くとE0144とC2044ってエラーを吐くんだがプロパティの文字セットって項目を設定なしにすると正常に処理されるのはどういう理屈なの?
const wchar_t[]からLPTSTRに変換できませんってメッセージ出るし型が違うのかなと思うが
だとしたら何故文字設定いじれば解消するのかもよくわからない
LPTSTR lptStr = TEXT("テスト");
って書くとE0144とC2044ってエラーを吐くんだがプロパティの文字セットって項目を設定なしにすると正常に処理されるのはどういう理屈なの?
const wchar_t[]からLPTSTRに変換できませんってメッセージ出るし型が違うのかなと思うが
だとしたら何故文字設定いじれば解消するのかもよくわからない
>>323
そういうことじゃないのか、ごめんなさい
そういうことじゃないのか、ごめんなさい
325デフォルトの名無しさん (ワッチョイ f637-UxC2)
2024/11/08(金) 09:56:22.05ID:tVfxyvn80326デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/08(金) 10:31:35.11ID:+8UCAN2P0 >>324
気持ちだけで十分よ
気持ちだけで十分よ
327デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/08(金) 10:32:35.47ID:+8UCAN2P0 >>325
2022だと設定項目見つからなかったから2012でやった、そしたら上記の結果になるんすよねえ
2022だと設定項目見つからなかったから2012でやった、そしたら上記の結果になるんすよねえ
328デフォルトの名無しさん (ササクッテロラ Sp79-P7MY)
2024/11/08(金) 10:36:22.46ID:ce4XJJ6Np 最近のVSはCの当たり前な構文が通用しないから困るよな
329デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/08(金) 10:51:18.29ID:+8UCAN2P0 >>328
Visual Studio側の問題なのこれ?
Visual Studio側の問題なのこれ?
330デフォルトの名無しさん (ブーイモ MM96-UxC2)
2024/11/08(金) 11:51:09.67ID:y6pbbxPDM331デフォルトの名無しさん (アウアウエー Sada-GGiU)
2024/11/08(金) 12:18:22.14ID:F9yTI1pla LPTSTR lptStr = L"テスト";
332デフォルトの名無しさん (アウアウエー Sada-GGiU)
2024/11/08(金) 12:20:09.93ID:F9yTI1pla あと
#define UNICODE
#define _UNICODE
だったかな
#define UNICODE
#define _UNICODE
だったかな
333デフォルトの名無しさん (アウアウエー Sada-GGiU)
2024/11/08(金) 12:28:34.80ID:F9yTI1pla それでもだめなら
文字コードが違うんじゃないですかね
文字コードが違うんじゃないですかね
334デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/08(金) 12:59:02.56ID:+8UCAN2P0335デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/08(金) 13:00:18.41ID:+8UCAN2P0336はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f532-Q1tn)
2024/11/08(金) 13:02:23.75ID:Me1tPYCI0 char と wchar_t の不整合じゃなくて const の有無の問題じゃないの?
C++ で文字列リテラルまわりの扱いで仕様変更があったからそれに関係してるのかも?
C++ での文字列リテラルの型は const char[] (ワイド文字リテラルの場合は const wchar_t[]) だが、文字列リテラルから直接変換する場合に限り char* (ワイド文字リテラルの場合は wchar_t*) に暗黙に変換して構わないというルールが C++03 まではあって、このルールは C++11 で削除されたという経緯がある。
つまり C++11 以降は文字列リテラルから暗黙には const を剥がすことが出来ない。 (キャストを書けば出来るけど。)
C では文字列リテラルの型は元から char[] で、 const が付いてない。
だから const まわりの制限とは関係ないんだが、これは C の仕様のほうがおかしいし、 C++ と同様の判定をしたほうが理に適っているとマイクロソフトが考えることはあるかもしれない。
C++ で文字列リテラルまわりの扱いで仕様変更があったからそれに関係してるのかも?
C++ での文字列リテラルの型は const char[] (ワイド文字リテラルの場合は const wchar_t[]) だが、文字列リテラルから直接変換する場合に限り char* (ワイド文字リテラルの場合は wchar_t*) に暗黙に変換して構わないというルールが C++03 まではあって、このルールは C++11 で削除されたという経緯がある。
つまり C++11 以降は文字列リテラルから暗黙には const を剥がすことが出来ない。 (キャストを書けば出来るけど。)
C では文字列リテラルの型は元から char[] で、 const が付いてない。
だから const まわりの制限とは関係ないんだが、これは C の仕様のほうがおかしいし、 C++ と同様の判定をしたほうが理に適っているとマイクロソフトが考えることはあるかもしれない。
337デフォルトの名無しさん (アウアウエー Sada-GGiU)
2024/11/08(金) 13:18:44.37ID:F9yTI1pla E0144 エンティティの初期化
型”cont wchar_t *"の値を使用して"wchar_t *"のエンティティを初期化することはできません
C2044は関係無い
型”cont wchar_t *"の値を使用して"wchar_t *"のエンティティを初期化することはできません
C2044は関係無い
338デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/08(金) 14:51:25.22ID:+8UCAN2P0 >>336
なるほどね、LPTSTRがchar*だから代入できないって話になるのか
それがわかったらエラー文にかいてあることが理解出来るね
昔の仕様だとconst charに見えて実際は違かったってこと?
それなら今回のコードもエラー吐かないし悩まなくてよかったのに
なるほどね、LPTSTRがchar*だから代入できないって話になるのか
それがわかったらエラー文にかいてあることが理解出来るね
昔の仕様だとconst charに見えて実際は違かったってこと?
それなら今回のコードもエラー吐かないし悩まなくてよかったのに
339デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/08(金) 14:52:37.02ID:+8UCAN2P0 >>337
関係ないの?LPSTRに代入できませんって言ってるように見えるけど
関係ないの?LPSTRに代入できませんって言ってるように見えるけど
340デフォルトの名無しさん (ササクッテロラ Sp79-P7MY)
2024/11/08(金) 16:25:31.55ID:1lsgaMlnp signedとunsignedでも怒り狂うからなぁw
いいんだよ、こっちは中身しってんだから余計なエラー吐くなよ
いいんだよ、こっちは中身しってんだから余計なエラー吐くなよ
341はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f532-Q1tn)
2024/11/08(金) 17:24:12.05ID:Me1tPYCI0 >>338
> 昔の仕様だとconst charに見えて実際は違かったってこと?
C の規格としては本来的に文字列リテラルの型には const は付かない。
これは今も昔も同じ。 変更はない。
なので何かが変わったとしたらマイクロソフトの独自仕様。
私はそのへんに詳しいわけじゃないけど C++ の規格改定に引きずられた可能性は想像できるなぁというぼんやりした予想なので経緯はわからぬ。
でもまあ結果的に const の問題ってのは妥当なみたいだね。
> 昔の仕様だとconst charに見えて実際は違かったってこと?
C の規格としては本来的に文字列リテラルの型には const は付かない。
これは今も昔も同じ。 変更はない。
なので何かが変わったとしたらマイクロソフトの独自仕様。
私はそのへんに詳しいわけじゃないけど C++ の規格改定に引きずられた可能性は想像できるなぁというぼんやりした予想なので経緯はわからぬ。
でもまあ結果的に const の問題ってのは妥当なみたいだね。
342デフォルトの名無しさん (ワッチョイ 3679-NO1F)
2024/11/09(土) 14:04:43.61ID:L+GgUCLJ0 LPTSTR lptStr = (LPTSTR)TEXT("テスト"); で警告出たりするのかな?
糞面倒だけどキャストで通るならそれ以上の対応不用
糞面倒だけどキャストで通るならそれ以上の対応不用
343デフォルトの名無しさん (ワッチョイ f648-UxC2)
2024/11/09(土) 14:22:07.15ID:12zpUv7J0 VS使ってるからたぶんCじゃなくてC++
こういうボンクラの自覚ないボンクラは相手しても疲れるだけ
こういうボンクラの自覚ないボンクラは相手しても疲れるだけ
344デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/09(土) 18:12:46.73ID:IeEwNzSH0345デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/09(土) 18:13:16.97ID:IeEwNzSH0346デフォルトの名無しさん (ワッチョイ 7161-m4Ma)
2024/11/09(土) 18:17:26.89ID:IeEwNzSH0 >>343
そんなこと言いながら何回もレスくれるなんて
そんなこと言いながら何回もレスくれるなんて
347デフォルトの名無しさん (ワッチョイ 0920-pds3)
2024/11/09(土) 18:29:31.05ID:mxjkBfxb0 >>315
どっちもいける
実行時エラー
https://wandbox.org/permlink/r9w30EwoyKVxIguC
> Segmentation fault
コンパイル時エラー
https://wandbox.org/permlink/yPJz2UPs8xHYPLAr
> prog.c: In function 'main':
> prog.c:8:17: error: '%d' directive writing 11 bytes into a region of size 1 [-Werror=format-overflow=]
> 8 | sprintf(s, "%d", INT_MIN);
> | ^~
> prog.c:8:5: note: 'sprintf' output 12 bytes into a destination of size 1
> 8 | sprintf(s, "%d", INT_MIN);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
どっちもいける
実行時エラー
https://wandbox.org/permlink/r9w30EwoyKVxIguC
> Segmentation fault
コンパイル時エラー
https://wandbox.org/permlink/yPJz2UPs8xHYPLAr
> prog.c: In function 'main':
> prog.c:8:17: error: '%d' directive writing 11 bytes into a region of size 1 [-Werror=format-overflow=]
> 8 | sprintf(s, "%d", INT_MIN);
> | ^~
> prog.c:8:5: note: 'sprintf' output 12 bytes into a destination of size 1
> 8 | sprintf(s, "%d", INT_MIN);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
348デフォルトの名無しさん (ワッチョイ cdd5-MfT4)
2024/11/10(日) 00:27:12.07ID:dkv1a77w0 左辺をLPCTSTRにすれば良くない?
リテラルの文字列を可変にすること自体が本来は不要だし、右辺を可変にキャストするよりは左辺を不変として (LPCTSTRとして) 受け取れば良いと思う
リテラルの文字列を可変にすること自体が本来は不要だし、右辺を可変にキャストするよりは左辺を不変として (LPCTSTRとして) 受け取れば良いと思う
349はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-4Bi2)
2024/11/10(日) 09:35:26.26ID:a6nPaG4v0350デフォルトの名無しさん (ワッチョイ e520-2uFP)
2024/11/10(日) 15:28:44.44ID:E/UouhcZ0 >>322
・Microsoft Visual Studio Community 2022 (64 ビット) を使用し「C++コンソールアプリ」で新規プロジェクト作成
・ソリューションエクスプローラーでソースファイルにあるファイル名を*.cppから*.cへ変更
・ファイル名を変更したファイルに下記をコピペ
#include <windows.h>
int main(void)
{
LPTSTR lptStr = TEXT("テスト");
}
・ビルド(B)→ソリューションのビルド(R) でフツーにビルド通ったわ。
・Microsoft Visual Studio Community 2022 (64 ビット) を使用し「C++コンソールアプリ」で新規プロジェクト作成
・ソリューションエクスプローラーでソースファイルにあるファイル名を*.cppから*.cへ変更
・ファイル名を変更したファイルに下記をコピペ
#include <windows.h>
int main(void)
{
LPTSTR lptStr = TEXT("テスト");
}
・ビルド(B)→ソリューションのビルド(R) でフツーにビルド通ったわ。
351デフォルトの名無しさん (アウアウエー Sa13-vkNS)
2024/11/11(月) 11:10:09.47ID:RXw/cl7Za つまりスレタイ嫁ということか
352デフォルトの名無しさん (ワッチョイ b507-4Bi2)
2024/11/11(月) 11:32:56.82ID:CKwZRMfb0353デフォルトの名無しさん (ワッチョイ 23ab-v1sd)
2024/11/12(火) 18:11:56.60ID:bmRwPCyO0 >>322
コンパイラオプションを見れば明らかになるじゃろう。
コンパイラオプションを見れば明らかになるじゃろう。
EchoAPIがVS Codeのワークフローにピッタリで、APIテストの能力がグッとアップしったって聞いて
355デフォルトの名無しさん (アウアウエー Sa13-vkNS)
2024/11/15(金) 18:07:01.60ID:yZ5Bkpe2a まるちんこしね
356デフォルトの名無しさん (ワッチョイ 3b2d-hB9O)
2024/11/22(金) 19:50:13.47ID:KyG89VCU0 Q.
doubleをprintfで表示するには%lfでいいの?
A.
double 型を printf で表示する場合、%lf ではなく %f を使用するのが一般的です。
理由:
printf の可変長引数において、float 型は double 型に自動的に昇格されます。
そのため、%f は double 型の値も受け取ることができます。
%lf は scanf で double 型の値を読み込む際に使用されますが、
printf では %f と同じ意味として扱われます (C99規格以降)。
doubleをprintfで表示するには%lfでいいの?
A.
double 型を printf で表示する場合、%lf ではなく %f を使用するのが一般的です。
理由:
printf の可変長引数において、float 型は double 型に自動的に昇格されます。
そのため、%f は double 型の値も受け取ることができます。
%lf は scanf で double 型の値を読み込む際に使用されますが、
printf では %f と同じ意味として扱われます (C99規格以降)。
357デフォルトの名無しさん (ワッチョイ bf5f-FO3g)
2024/11/24(日) 19:40:17.88ID:g9nxxeRj0 これが同じ値書いてくれないのは普通だったんだっけ.
#include <stdio.h>
int main() {
int s=31;
unsigned long i = 1 << 31;
unsigned long j = 1 << 31;
unsigned long k;
while(i) {
k = 1 << s;
printf("%lu,%lu,%lu¥n",i,j,k);
i = (unsigned)i>>1;
j >>= 1;
s--;
}
return 0;
}
#include <stdio.h>
int main() {
int s=31;
unsigned long i = 1 << 31;
unsigned long j = 1 << 31;
unsigned long k;
while(i) {
k = 1 << s;
printf("%lu,%lu,%lu¥n",i,j,k);
i = (unsigned)i>>1;
j >>= 1;
s--;
}
return 0;
}
358デフォルトの名無しさん (ワッチョイ ff63-cdGy)
2024/11/24(日) 19:55:59.76ID:VUrUqN1f0 手元にあるGCCとMS-C(32bit)は
同じ値が出てました
同じ値が出てました
359デフォルトの名無しさん (ワッチョイ d7d8-7ouQ)
2024/11/24(日) 20:09:10.15ID:KIy2cazo0 質問失礼します
ダイアログボックスについて学習しようとしているのですが、サンプルのリソースをコピペしたところ、ダイアログボックスのIDが認識されなく手詰まりになってしまっています。
どなたかご助力ください。
TEST DIALOG (座標を書くと書き込みできない)
C2059
C2061
以上のソースでエラーを吐いてしまいます。リソースをベタ打ちで記述する参考サイトが少ないので判断がつきません。
ダイアログボックスについて学習しようとしているのですが、サンプルのリソースをコピペしたところ、ダイアログボックスのIDが認識されなく手詰まりになってしまっています。
どなたかご助力ください。
TEST DIALOG (座標を書くと書き込みできない)
C2059
C2061
以上のソースでエラーを吐いてしまいます。リソースをベタ打ちで記述する参考サイトが少ないので判断がつきません。
360デフォルトの名無しさん (ワッチョイ ff63-cdGy)
2024/11/24(日) 20:28:06.09ID:VUrUqN1f0 記述に文法上の誤りがあるって事です。
コピペで失敗しているのか、
元々のサンプルに誤りがあるかは
これだけでは分かりません
文法の基本から学び直して
自分で見つけるしかないかもしれません
コピペで失敗しているのか、
元々のサンプルに誤りがあるかは
これだけでは分かりません
文法の基本から学び直して
自分で見つけるしかないかもしれません
361デフォルトの名無しさん (ワッチョイ bf5f-FO3g)
2024/11/24(日) 20:47:32.93ID:Hl1pEu0p0 >> 358
試していただきありがとうございます.
FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: x86_64-unknown-freebsd14.1
と,gccは共に jの値がおかしいのです.
試しに,
unsigned long j = 1 << 31;
を
unsigned int j = 1 << 31;
にすると同じ値になる.
これはコンパイラのBUGかなぁ.
試していただきありがとうございます.
FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: x86_64-unknown-freebsd14.1
と,gccは共に jの値がおかしいのです.
試しに,
unsigned long j = 1 << 31;
を
unsigned int j = 1 << 31;
にすると同じ値になる.
これはコンパイラのBUGかなぁ.
よく分からないけど
unsigned long i = 1 << 31;
unsigned long j = 1 << 31;
を
unsigned long i = 1L << 31;
unsigned long j = 1L << 31;
とするとうまくいく? clang
どちらでも同じ結果になりそうだけど
見当違いだったらごめんなさい
unsigned long i = 1 << 31;
unsigned long j = 1 << 31;
を
unsigned long i = 1L << 31;
unsigned long j = 1L << 31;
とするとうまくいく? clang
どちらでも同じ結果になりそうだけど
見当違いだったらごめんなさい
gcc -S
でアセンブラ出してみてみたけど、
いや、アセンブラよくわからないんだけど、
修正前の iと jは初期化時にいずれも符号拡張されて大きな値になっていて
その後なぜか iの方は下32ビットで、jの方は64ビットで計算されているようで、正しいのはむしろ jのように見えたがごめんなさい
本当にアセンブラ分からないので多分間違ってます…
でアセンブラ出してみてみたけど、
いや、アセンブラよくわからないんだけど、
修正前の iと jは初期化時にいずれも符号拡張されて大きな値になっていて
その後なぜか iの方は下32ビットで、jの方は64ビットで計算されているようで、正しいのはむしろ jのように見えたがごめんなさい
本当にアセンブラ分からないので多分間違ってます…
364デフォルトの名無しさん (ワッチョイ 9f61-vAaR)
2024/11/24(日) 22:26:25.59ID:zY64cYUd0 gcc, clang
sizeof(int) == 32
sizeof(unsigned long) == 64
での出力
18446744071562067968,18446744071562067968,18446744071562067968
1073741824,9223372035781033984,1073741824
536870912,4611686017890516992,536870912
省略
8,68719476728,8
4,34359738364,4
2,17179869182,2
1,8589934591,1
これはこれで正しいと思うが
sizeof(int) == 32
sizeof(unsigned long) == 64
での出力
18446744071562067968,18446744071562067968,18446744071562067968
1073741824,9223372035781033984,1073741824
536870912,4611686017890516992,536870912
省略
8,68719476728,8
4,34359738364,4
2,17179869182,2
1,8589934591,1
これはこれで正しいと思うが
あ、iは unsigned (int)でキャストしてるのか
366デフォルトの名無しさん (ワッチョイ bf5f-FO3g)
2024/11/24(日) 23:09:31.94ID:Hl1pEu0p0 わかりやすく,intのものとcastかけたのにしてみました.
これだとやはり,pの値だけ変でした.
元々は,binaryで数を8bit 16bit 32bitで表示する関数が,8,16が普通で32だけ変なので気がついたのでした.なんでintだと符合拡張されなくてlongだとされるかが謎.
#include <stdio.h>
int main() {
int s=31;
unsigned long i = 1 << 31;
unsigned int j = 1 << 31;
unsigned long p = 1 << 31;
unsigned long k;
while(i) {
k = 1 << s;
printf("%lu,%u,%lu,%lu¥n",i,j,k,p);
i = (unsigned)i>>1;
j >>= 1;
p >>= 1;
s--;
}
return 0;
}
これだとやはり,pの値だけ変でした.
元々は,binaryで数を8bit 16bit 32bitで表示する関数が,8,16が普通で32だけ変なので気がついたのでした.なんでintだと符合拡張されなくてlongだとされるかが謎.
#include <stdio.h>
int main() {
int s=31;
unsigned long i = 1 << 31;
unsigned int j = 1 << 31;
unsigned long p = 1 << 31;
unsigned long k;
while(i) {
k = 1 << s;
printf("%lu,%u,%lu,%lu¥n",i,j,k,p);
i = (unsigned)i>>1;
j >>= 1;
p >>= 1;
s--;
}
return 0;
}
367デフォルトの名無しさん (ワッチョイ bf5f-FO3g)
2024/11/24(日) 23:16:12.94ID:Hl1pEu0p0 unsigned long p = 1 << 31;
を
unsigned long p = 1L << 31;
にしたら同じ値になりました.
ううむ,なぜ
unsigned int j = 1 << 31;
だとうまくいって,longだと1Lにしないとうまくいかんのだ.
を
unsigned long p = 1L << 31;
にしたら同じ値になりました.
ううむ,なぜ
unsigned int j = 1 << 31;
だとうまくいって,longだと1Lにしないとうまくいかんのだ.
右辺が 1<<31だと
左辺が intだと0x80000000がそのまま、
longだと 0xffffffff80000000に拡張されて転記されるからでは
左辺が intだと0x80000000がそのまま、
longだと 0xffffffff80000000に拡張されて転記されるからでは
unsigned long i = (unsigned long) 1 << 31;
とすれば iは 0x80000000になるかと
とすれば iは 0x80000000になるかと
371はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-hCSs)
2024/11/25(月) 02:42:55.67ID:EAdMpn4b0 >>367
言語仕様的に解釈すると……
シフト演算子の結果の型は左オペランドを整数拡張した後の型と同じになる。
整数リテラルは int の範囲で表せる限り int なので 1 は int 。
int は整数拡張の必要がないので 1<<31 の結果の型も int 。
そして結果の型が signed かつ結果の値が結果の型で表現可能な範囲にないときの動作は未定義なので
2147483648 が int (おそらく質問者の環境では 32 ビット) の最大値である 2147483647 を越えていて未定義の挙動となる。
不定とか処理系定義ではなく未定義と明記されてる。
つまり言語仕様上は何が起きても良いということ。
言語仕様的に解釈すると……
シフト演算子の結果の型は左オペランドを整数拡張した後の型と同じになる。
整数リテラルは int の範囲で表せる限り int なので 1 は int 。
int は整数拡張の必要がないので 1<<31 の結果の型も int 。
そして結果の型が signed かつ結果の値が結果の型で表現可能な範囲にないときの動作は未定義なので
2147483648 が int (おそらく質問者の環境では 32 ビット) の最大値である 2147483647 を越えていて未定義の挙動となる。
不定とか処理系定義ではなく未定義と明記されてる。
つまり言語仕様上は何が起きても良いということ。
372デフォルトの名無しさん (ワッチョイ ffd6-G09H)
2024/11/25(月) 07:22:58.48ID:NtppUMW10 6.3.1.3のこれじゃないの
Otherwise, if the new type is unsigned, the value is converted by repeatedly adding or
subtracting one more than the maximum value that can be represented in the new type
until the value is in the range of the new type.
Otherwise, if the new type is unsigned, the value is converted by repeatedly adding or
subtracting one more than the maximum value that can be represented in the new type
until the value is in the range of the new type.
373デフォルトの名無しさん (ワッチョイ bf5f-FO3g)
2024/11/25(月) 08:27:04.40ID:qsrJNZhH0 6.3.1.3
符号付き整数型及び符号無し整数型 整数型の値を̲Bool型以外の他の整数型に変換する場合,
その値が新しい型で表現可能なとき,値は変化しない。
新しい型で表現できない場合,新しい型が符号無し整数型であれば,新しい型で表現しうる最大の数に
1加えた数を加えること又は減じることを,新しい型の範囲に入るまで繰り返すことによって得られる値
に変換する(49)。
なるほど,1がintで<<31すると負の最大値となって,unsignedとして表せないからか.
皆様,ありがとうございました.
符号付き整数型及び符号無し整数型 整数型の値を̲Bool型以外の他の整数型に変換する場合,
その値が新しい型で表現可能なとき,値は変化しない。
新しい型で表現できない場合,新しい型が符号無し整数型であれば,新しい型で表現しうる最大の数に
1加えた数を加えること又は減じることを,新しい型の範囲に入るまで繰り返すことによって得られる値
に変換する(49)。
なるほど,1がintで<<31すると負の最大値となって,unsignedとして表せないからか.
皆様,ありがとうございました.
374はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-hCSs)
2024/11/25(月) 09:22:18.85ID:EAdMpn4b0375デフォルトの名無しさん (ワッチョイ 9fc2-ZGYG)
2024/11/25(月) 09:32:20.82ID:SsaYg1Am0 科学 + ンニュース 5ch
保守派もリベラル派も「自分の政治的信念に合致したニュース」を信じやすいという研究結果 [すらいむ★]
https://itest.5ch.net/egg/test/read.cgi/scienceplus/1732447647
コメントも含めて読むと
陰謀論が収まら無い理由が判明する
保守派もリベラル派も「自分の政治的信念に合致したニュース」を信じやすいという研究結果 [すらいむ★]
https://itest.5ch.net/egg/test/read.cgi/scienceplus/1732447647
コメントも含めて読むと
陰謀論が収まら無い理由が判明する
376デフォルトの名無しさん (ワッチョイ ffd6-G09H)
2024/11/25(月) 09:46:02.42ID:NtppUMW10 なるほど、32bitのみでやるときも1u<<31にしないといけないのか
377デフォルトの名無しさん (ササクッテロ Spcb-8bf6)
2024/11/25(月) 10:29:04.22ID:G+C3M6QHp なぜ浮動小数型をシフトしようとした?
378デフォルトの名無しさん (ワッチョイ bfdf-FO3g)
2024/11/25(月) 13:39:22.46ID:YjGMGS1I0 >> 374 なるほど,そっちで既に未定義だったか.
6.5.7
ビット単位のシフト演算子
構文規則
シフト式:
加減式
シフト式 << 加減式
シフト式 >> 加減式
制約 各オペランドは,整数型をもたなければならない。
意味規則 整数拡張を各オペランドに適用する。結果の型は,左オペランドを拡張した後の型とする。右オペランドの値が負であるか,又は拡張した左オペランドの幅以上の場合,その動作は,未定義とする。
E1<<E2の結果は,E1をE2ビット分左にシフトした値とする。空いたビットには0を詰める。E1が符号無し整数型をもつ場合,結果の値は,E1×2E2の,結果の型で表現可能な最大値より1大きい値を法と
する剰余とする。E1が符号付き整数型と非負の値をもち,E1×2E2が結果の型で表現可能である場合,それが結果の値となる。それ以外の場合,その動作は未定義とする。
E1>>E2の結果は,E1をE2ビット分右にシフトした値とする。E1が符号無し整数型をもつ場合,又はE1が符号付き整数型と非負の値をもつ場合,結果の値は,E1/2E2の商の整数部分とする。E1が符号付き整数型と負の値をもつ場合,結果の値は処理系定義とする。
6.5.7
ビット単位のシフト演算子
構文規則
シフト式:
加減式
シフト式 << 加減式
シフト式 >> 加減式
制約 各オペランドは,整数型をもたなければならない。
意味規則 整数拡張を各オペランドに適用する。結果の型は,左オペランドを拡張した後の型とする。右オペランドの値が負であるか,又は拡張した左オペランドの幅以上の場合,その動作は,未定義とする。
E1<<E2の結果は,E1をE2ビット分左にシフトした値とする。空いたビットには0を詰める。E1が符号無し整数型をもつ場合,結果の値は,E1×2E2の,結果の型で表現可能な最大値より1大きい値を法と
する剰余とする。E1が符号付き整数型と非負の値をもち,E1×2E2が結果の型で表現可能である場合,それが結果の値となる。それ以外の場合,その動作は未定義とする。
E1>>E2の結果は,E1をE2ビット分右にシフトした値とする。E1が符号無し整数型をもつ場合,又はE1が符号付き整数型と非負の値をもつ場合,結果の値は,E1/2E2の商の整数部分とする。E1が符号付き整数型と負の値をもつ場合,結果の値は処理系定義とする。
379デフォルトの名無しさん (JP 0Hdf-6m00)
2024/11/26(火) 22:12:07.51ID:JxXv+doZH VS CodeでEchoAPIを使うと、ツールを切り替えずにAPIテストをシームレスに管理できるようになったよ!
380デフォルトの名無しさん (ワッチョイ d761-7ouQ)
2024/11/29(金) 15:48:48.81ID:QX01Nly20 以下のサンプルプログラムが理解できず困っています。
該当プログラムは、コマンドラインから読み込んだBMPの色データを矩形として並べていくというものの一部を抜粋しています。
以下のfor文は
カラーテーブルの数を取得する→
ブラシを設定する→
先頭の構造体メンバからiCount先の構造体メンバを指定→
iCountにインクリメント
という流れだと考えられると思うのですが、1に対し1カラービット分左シフトとなっている部分がどういったロジックによって数の取得が実現されているのかわかりません。
質問は2点あり、どのようにしてテーブル数を取得しているのか、コードの理解は正しいのかについてお答えしていただければと思います。
サンプルコード
#include <windows.h>
BITMAPFILEHEADER bmpFileHeader;
BITMAPCOREHEADER bmpCoreHeader;
RGBTRIPLE *prtColor;
for ( ; iCount < (1 << bmpCoreHeader.bcBitCount) ; iCount++) {
SelectObject(hdc , CreateSolidBrush(
RGB( (prtColor + iCount)->rgbtRed ,
(prtColor + iCount)->rgbtGreen ,
(prtColor + iCount)->rgbtBlue
))
該当プログラムは、コマンドラインから読み込んだBMPの色データを矩形として並べていくというものの一部を抜粋しています。
以下のfor文は
カラーテーブルの数を取得する→
ブラシを設定する→
先頭の構造体メンバからiCount先の構造体メンバを指定→
iCountにインクリメント
という流れだと考えられると思うのですが、1に対し1カラービット分左シフトとなっている部分がどういったロジックによって数の取得が実現されているのかわかりません。
質問は2点あり、どのようにしてテーブル数を取得しているのか、コードの理解は正しいのかについてお答えしていただければと思います。
サンプルコード
#include <windows.h>
BITMAPFILEHEADER bmpFileHeader;
BITMAPCOREHEADER bmpCoreHeader;
RGBTRIPLE *prtColor;
for ( ; iCount < (1 << bmpCoreHeader.bcBitCount) ; iCount++) {
SelectObject(hdc , CreateSolidBrush(
RGB( (prtColor + iCount)->rgbtRed ,
(prtColor + iCount)->rgbtGreen ,
(prtColor + iCount)->rgbtBlue
))
381デフォルトの名無しさん (スプッッ Sd3f-G09H)
2024/11/29(金) 16:12:14.82ID:YWo8X0edd bcBitCountはピクセルあたりビット数で1,4,8,24だそう
nビットで表せる値は2^n通りで、これは左シフト1<<nで計算できる
nビットで表せる値は2^n通りで、これは左シフト1<<nで計算できる
382デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/29(金) 23:08:43.43ID:5pZynS2U0 # 質問されていない部分だけど…
iCountと比較する値はループ内で変動しないよね?
だったら毎回計算せずにループ前で計算して別変数に記憶しておくほうがよくないかい?
iCountと比較する値はループ内で変動しないよね?
だったら毎回計算せずにループ前で計算して別変数に記憶しておくほうがよくないかい?
383デフォルトの名無しさん (ワッチョイ ffd6-G09H)
2024/11/30(土) 00:28:19.69ID:b6kb1MmL0 今時のコンパイラは十分賢いので気にすることない
384デフォルトの名無しさん (ワッチョイ ff63-cdGy)
2024/11/30(土) 00:37:35.21ID:VtvuoLT+0 ユーザーの犯したバグも直してくれるとありがたいなあ
385デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 00:47:56.34ID:k7UOR52k0 シフトでも掛算でもどっちでもいいけど
質問者のように読んで悩むのは問題
コメント書いておけ
ループ内毎回計算か最適化でループ外に出したかは
コンパイル後の逆アセンブルとかで確認するの?
だったら間違いないようにループ外に出す方が良い癖にもなると思うのだが
質問者のように読んで悩むのは問題
コメント書いておけ
ループ内毎回計算か最適化でループ外に出したかは
コンパイル後の逆アセンブルとかで確認するの?
だったら間違いないようにループ外に出す方が良い癖にもなると思うのだが
386デフォルトの名無しさん (ワッチョイ bf79-q0Tp)
2024/11/30(土) 09:43:24.89ID:54hbVEvk0 380の知能では最適化したつもりが新たなバグを埋め込む事になるかもしれん
自身の身の丈に合ったコードにしとけ
未来の自分が賢くなってる事を信じて
自身の身の丈に合ったコードにしとけ
未来の自分が賢くなってる事を信じて
387デフォルトの名無しさん (アウアウエー Sadf-wjfe)
2024/11/30(土) 09:49:47.60ID:l0dFcapba #include <windows.h>
BITMAPFILEHEADER bmpFileHeader;
BITMAPCOREHEADER bmpCoreHeader;
RGBTRIPLE *prtColor;
↑
この間に何も描かれてないのは投稿者が勝手に削除したの?元から無いの?
↓
for ( ; iCount < (1 << bmpCoreHeader.bcBitCount) ; iCount++) {
SelectObject(hdc , CreateSolidBrush(
RGB( (prtColor + iCount)->rgbtRed ,
(prtColor + iCount)->rgbtGreen ,
(prtColor + iCount)->rgbtBlue
))
BITMAPFILEHEADER bmpFileHeader;
BITMAPCOREHEADER bmpCoreHeader;
RGBTRIPLE *prtColor;
↑
この間に何も描かれてないのは投稿者が勝手に削除したの?元から無いの?
↓
for ( ; iCount < (1 << bmpCoreHeader.bcBitCount) ; iCount++) {
SelectObject(hdc , CreateSolidBrush(
RGB( (prtColor + iCount)->rgbtRed ,
(prtColor + iCount)->rgbtGreen ,
(prtColor + iCount)->rgbtBlue
))
388デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 11:23:36.84ID:k7UOR52k0 なんでこんなに読めないのか理由がわかった
変数名や字下げや「,」前のブランクなど
論理そのもの以前にコーディングの美しさが全然無い
変数名や字下げや「,」前のブランクなど
論理そのもの以前にコーディングの美しさが全然無い
389デフォルトの名無しさん (ワッチョイ ff63-cdGy)
2024/11/30(土) 11:53:49.47ID:VtvuoLT+0 この掲示板書き込むと、スペースやタブは消されちゃうんだよな。
だから綺麗に整形した状態でソース載せたいなら、
全角スペース使うしかない。
あるいはソース公開出来るサイトにアップロードして、
そのリンクを張るなりする。
そういうサイトは、>>1 に書いてある。
だから綺麗に整形した状態でソース載せたいなら、
全角スペース使うしかない。
あるいはソース公開出来るサイトにアップロードして、
そのリンクを張るなりする。
そういうサイトは、>>1 に書いてある。
390デフォルトの名無しさん (ワッチョイ bfd9-6oxW)
2024/11/30(土) 12:18:13.55ID:tlb45efI0 美しさとか言い出したら自転車置き場の議論なるからやめとけ
391デフォルトの名無しさん (ワッチョイ ff63-cdGy)
2024/11/30(土) 12:21:38.32ID:VtvuoLT+0392デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 15:56:34.50ID:k7UOR52k0 python自体のスタイルPEP8に加えてCについてのPEP7も整備されているのに
https://peps.python.org/pep-0007/
あえてそれに背くコーディングをする理由が見つからない
GNUのへんてこコーディングも規約文章は整備されている
https://peps.python.org/pep-0007/
あえてそれに背くコーディングをする理由が見つからない
GNUのへんてこコーディングも規約文章は整備されている
393デフォルトの名無しさん (ワッチョイ bf79-q0Tp)
2024/11/30(土) 16:28:54.09ID:54hbVEvk0 他人のふんどしででかい顔のpythonは存在自体がきしょくってぇ
そんなもん使ってる奴の押し付けに従う気にはとてもなれないって感じぃ
そんなもん使ってる奴の押し付けに従う気にはとてもなれないって感じぃ
394はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-hCSs)
2024/11/30(土) 16:41:54.15ID:VBYh6hCP0 自分の使ってるテキストエディタにコピペして整形を実行したら一瞬でどうとでもなるんだからどうでもいいだろ。
395デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 17:05:29.66ID:k7UOR52k0 func(a , b , c );
func(a, b, c);
上から下への変換はインデントとは異なりやっかい
func(a, b, c);
上から下への変換はインデントとは異なりやっかい
396はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-hCSs)
2024/11/30(土) 17:22:56.29ID:VBYh6hCP0 >>395
どんな古臭いフォーマッタを使ってるんだ?
どんな古臭いフォーマッタを使ってるんだ?
397デフォルトの名無しさん (ワッチョイ d761-7ouQ)
2024/11/30(土) 17:25:06.78ID:9y3I76FS0398デフォルトの名無しさん (ワッチョイ d761-7ouQ)
2024/11/30(土) 17:25:18.86ID:9y3I76FS0399デフォルトの名無しさん (ワッチョイ bf79-q0Tp)
2024/11/30(土) 18:05:05.65ID:54hbVEvk0 Cは知っといた方がいいけど
GUIをやりたいならこのスレに居るのは時間の無駄なんだが
そのBITMAPなんちゃらも以下の環境では気にしなくていい
GUI開発おすすめ言語
iOS macOSアプリ Swift、Objective-C
Androidアプリ Kotlin、Java
Webアプリ Kotlin、Java
Windows C#
なおWeb系はHTML/CSS、JavaScript/TypeScriptは必須と思って頂きたい
GUIをやりたいならこのスレに居るのは時間の無駄なんだが
そのBITMAPなんちゃらも以下の環境では気にしなくていい
GUI開発おすすめ言語
iOS macOSアプリ Swift、Objective-C
Androidアプリ Kotlin、Java
Webアプリ Kotlin、Java
Windows C#
なおWeb系はHTML/CSS、JavaScript/TypeScriptは必須と思って頂きたい
400デフォルトの名無しさん (ワッチョイ ff63-cdGy)
2024/11/30(土) 18:12:39.34ID:VtvuoLT+0 Windowsの内部構造を知るのは時間の無駄なのか
401デフォルトの名無しさん (ワッチョイ bf79-q0Tp)
2024/11/30(土) 18:17:30.16ID:54hbVEvk0 BITMAPなんちゃらに詳しくなった所でWindowsの内部構造を知ったことにはならないんだがぁ?
現行Windows11の内部構造なんてきしょすぎてそもそも知りたくもないわ
現行Windows11の内部構造なんてきしょすぎてそもそも知りたくもないわ
402デフォルトの名無しさん (ワッチョイ ff63-cdGy)
2024/11/30(土) 18:33:02.64ID:VtvuoLT+0 そういう人はソフト開発に向いてないよ
403デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 18:37:21.74ID:k7UOR52k0 これだけ見て分かるわけ無いよ
max = 1 << bmpCoreHeader.bcBitCount;
for (iCountの初期値が無いよ、普通0からだよね; iCount < max; iCount++) {
// テーブルRGB値をブラシの色に設定?
brush = CreateSolidBrush(...);
// RGBで色指定したブラシで塗る?hdcが変わらんようだが何回も呼ぶ意味があるの?
SelectObject(hdc, brush);
// これ以降があるのか…
}
max = 1 << bmpCoreHeader.bcBitCount;
for (iCountの初期値が無いよ、普通0からだよね; iCount < max; iCount++) {
// テーブルRGB値をブラシの色に設定?
brush = CreateSolidBrush(...);
// RGBで色指定したブラシで塗る?hdcが変わらんようだが何回も呼ぶ意味があるの?
SelectObject(hdc, brush);
// これ以降があるのか…
}
404デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 18:53:59.75ID:k7UOR52k0 bmpCoreHeader.bcBitCount の範囲チェックが必要そう
uint64_t max;
max = 1 << 64; // max == 0x8000000000000000 で意味がありそう
max = 1 << 65; // これ64bit整数の範囲超えているよね、プロセッサ依存の値になる予感
uint64_t max;
max = 1 << 64; // max == 0x8000000000000000 で意味がありそう
max = 1 << 65; // これ64bit整数の範囲超えているよね、プロセッサ依存の値になる予感
405デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 19:19:34.08ID:k7UOR52k0 64bitシフトでも溢れた
これ難しいね
uint64_t seed, max
seed = 1;
max = seed << 63; // 0x80000000 で期待どおり
max = 1ull << 63; // 0x80000000 これも期待どおり
max = 1 << 63; // 即値1のレジスタ範囲が足りない?
max = 1 << 63; // 即値1だと32bitなのか
これ難しいね
uint64_t seed, max
seed = 1;
max = seed << 63; // 0x80000000 で期待どおり
max = 1ull << 63; // 0x80000000 これも期待どおり
max = 1 << 63; // 即値1のレジスタ範囲が足りない?
max = 1 << 63; // 即値1だと32bitなのか
406デフォルトの名無しさん (スプッッ Sd8b-G09H)
2024/11/30(土) 19:23:29.64ID:ePDG6JlId カラーパレットを使うのは1,4,8って決まってるんだが
407青木康善 (アウアウウー Sa5b-8bf6)
2024/11/30(土) 19:52:07.91ID:exhSsXMya トリプルポインタが理解不能です。
408デフォルトの名無しさん (ワッチョイ ff76-J7R8)
2024/11/30(土) 20:06:07.06ID:k7UOR52k0 1, 4, 8以外のエラー処理が無ければ手抜きプログラムだよ
409デフォルトの名無しさん (ワッチョイ bf79-q0Tp)
2024/11/30(土) 21:42:40.50ID:54hbVEvk0 これが俗に言う無能な働き者かぁ…
410デフォルトの名無しさん (ワッチョイ 57c3-EYTo)
2024/11/30(土) 22:31:58.70ID:cI+uLRSv0 粘着キショい
411デフォルトの名無しさん (ササクッテロロ Sp10-8wrk)
2024/12/01(日) 11:20:07.96ID:HNZEO20Lp >>407
理解してる俺でもデバッグん時に面倒だから使わない
理解してる俺でもデバッグん時に面倒だから使わない
412デフォルトの名無しさん (ワッチョイ 9663-WFUB)
2024/12/01(日) 11:21:42.42ID:+XByeWPN0 理解するな、感じるんだ!
413デフォルトの名無しさん (ワッチョイ fb6e-Qs+Z)
2024/12/02(月) 07:39:26.68ID:UIzNnBqa0 スマホ世代もCってるなんて頼もしい限りだな
https://pbs.twimg.com/media/GdrvuRtWgAA1DOe.jpg
https://pbs.twimg.com/media/GdrvuRtWgAA1DOe.jpg
414デフォルトの名無しさん (ササクッテロロ Sp10-8wrk)
2024/12/02(月) 10:00:18.95ID:cKcAe5N2p なんだその数字w
415はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-LsAq)
2024/12/02(月) 12:52:17.82ID:5A4jg9rQ0 >>413
なんていうアプリで書いてるんだろ?
なんていうアプリで書いてるんだろ?
416デフォルトの名無しさん
2024/12/02(月) 16:27:58.74ID:sZTu4RGZ0417デフォルトの名無しさん (ワッチョイ 9663-WFUB)
2024/12/02(月) 16:44:39.99ID:mvW+hvRB0 無料版もあるみたいだ。違いは分からなかった。
/dp/B01CEZQGX8
/dp/B01CEZQGX8
なんかEchoAPI、さまざまなAPIシナリオをモックするのに役立って、フロントエンドの作業を独立して行えるようになるよ
419デフォルトの名無しさん (ワッチョイ 62ad-sHi4)
2024/12/05(木) 08:13:19.15ID:XxVPE2wx0 前はAIDEってのもあったような
自分も購入済みだったけどストアから消えた
自分も購入済みだったけどストアから消えた
420デフォルトの名無しさん (ワッチョイ ca48-Q86W)
2024/12/05(木) 08:18:47.93ID:GShkk8fF0 >>418ならただの宣伝マルチポストなのでさっさとNGしておくように
421デフォルトの名無しさん (アウアウ Sa4f-f5HH)
2024/12/08(日) 09:05:36.00ID:NBQmwlWPa char text[32] = "count="
sptintf(text, "%s%d", text, 100);
↑これって問題ない?
sptintf(text, "%s%d", text, 100);
↑これって問題ない?
422デフォルトの名無しさん (ワッチョイ a794-InQL)
2024/12/08(日) 09:31:43.48ID:ukMyBbJC0 オーバーフローを懸念。
423デフォルトの名無しさん (ワッチョイ bf5e-dt5O)
2024/12/08(日) 12:39:42.22ID:xllqP0wk0 snprintf
424はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4732-B9Rp)
2024/12/08(日) 13:05:39.35ID:6js3fqHP0 >>421
sprintf のことだよね?
問題はある。
領域が重なるオブジェクト間でコピーが行われるときの動作は未定義とするという仕様になってる。
それと関数シグネチャを見ればわかるが引数のところに restrict ってついてるでしょ。
その性質上、他の引数がこれと領域が被ってはいけないというサインだ。
まあ引数を使わない関数であれば restrict 修飾されたポインタが指す領域がかぶってもただちに違反ではないが、常識的には渡す以上は使われるものと想定すべきだよね。
sprintf のことだよね?
問題はある。
領域が重なるオブジェクト間でコピーが行われるときの動作は未定義とするという仕様になってる。
それと関数シグネチャを見ればわかるが引数のところに restrict ってついてるでしょ。
その性質上、他の引数がこれと領域が被ってはいけないというサインだ。
まあ引数を使わない関数であれば restrict 修飾されたポインタが指す領域がかぶってもただちに違反ではないが、常識的には渡す以上は使われるものと想定すべきだよね。
425デフォルトの名無しさん (ワッチョイ e7fa-jsat)
2024/12/08(日) 16:35:15.95ID:iOnFgjmu0426デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/08(日) 20:16:31.35ID:rVbvHhAN0 最近の小学校ではこんな宿題出るのか
末恐ろしいと言うか、頼もしいというか
末恐ろしいと言うか、頼もしいというか
427デフォルトの名無しさん
2024/12/09(月) 01:07:25.53ID:ToKnc/9y0 コンピュータの授業とか普通にあるんだろ?今って
俺からすると羨ましい限りだわ
でもダンスの授業はいらん
俺からすると羨ましい限りだわ
でもダンスの授業はいらん
428デフォルトの名無しさん (ワッチョイ bf79-/9Tr)
2024/12/09(月) 01:41:05.76ID:izrgU9L90 元々芸術科目や体育は面倒な存在だし
ダンスはそれらが合わさって一見最強に見えるだけで専門科目に比べれば実は大した内容じゃない
子供は加減の付け方を知らないから物凄い壁に見えるんだろう
ダンスはそれらが合わさって一見最強に見えるだけで専門科目に比べれば実は大した内容じゃない
子供は加減の付け方を知らないから物凄い壁に見えるんだろう
429はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 67c7-B9Rp)
2024/12/09(月) 01:48:04.91ID:hHB0rnnr0 1990 年代頃なら中学校でコンピュータの授業はあったがプログラミングがちょっとでも出来るようになるほどではなく使い方に慣れるという程度だったと思う。
ただ、学校に設備や資料はあったから興味があれは詳しくなれるチャンスはあった。
設備をどのくらい解放するかは学校の体制によるだろうけど。
ただ、学校に設備や資料はあったから興味があれは詳しくなれるチャンスはあった。
設備をどのくらい解放するかは学校の体制によるだろうけど。
430デフォルトの名無しさん (ワッチョイ dfad-pQ4B)
2024/12/09(月) 10:00:06.94ID:hbK9EAUD0 >>427
踊りながら英語でコンピュータを使え
踊りながら英語でコンピュータを使え
431デフォルトの名無しさん (ワッチョイ dff4-tB0+)
2024/12/09(月) 13:23:27.80ID:wWCmXoxS0 科学 + 5ch
【AI】AIはわずか2時間の対話で人間の性格をコピーできる [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1733576027/
コメントに面白いことが書かれている
【AI】AIはわずか2時間の対話で人間の性格をコピーできる [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1733576027/
コメントに面白いことが書かれている
432デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/09(月) 13:52:01.90ID:IOR7vjsa0 2時間で初等教育から大学院レベルまで学習完了したら
人間要らなくなりそうだな
人間要らなくなりそうだな
433デフォルトの名無しさん (ワッチョイ e701-f5HH)
2024/12/09(月) 18:02:12.33ID:rC3URswf0 >>429
たしか教師がクソすぎて失敗したんだよなw
たしか教師がクソすぎて失敗したんだよなw
434デフォルトの名無しさん (ワッチョイ dfad-pQ4B)
2024/12/09(月) 19:36:33.91ID:hbK9EAUD0 やがて全ての仕事がAIに直結されたロボットによって置き換えられ、人類絶滅。
地球はAIのみが存在する世界になり、真空でもそのまま動くロボットが宇宙征服。
地球はAIのみが存在する世界になり、真空でもそのまま動くロボットが宇宙征服。
435デフォルトの名無しさん (ワッチョイ 6761-/Pym)
2024/12/09(月) 21:34:01.67ID:OpvCpgOo0 チェックボックスとかラジオボタンの状態を保存したいんだけどなんて調べればええんすの?
現状ウィンドウを破棄する前にコントロールの内容を取得して状態に合わせた変数を初期化ファイルに保存、再起動時に変数に対応した状態に再設定するみたいなのしか思いつかん
冗長になって見づらいだろうし代替案を知りたい
現状ウィンドウを破棄する前にコントロールの内容を取得して状態に合わせた変数を初期化ファイルに保存、再起動時に変数に対応した状態に再設定するみたいなのしか思いつかん
冗長になって見づらいだろうし代替案を知りたい
436デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/09(月) 21:38:21.41ID:IOR7vjsa0 その通りで良いと思います
www最近、EchoAPIを使い始めたところ、効率的なAPIテストツールを提供してくれるおかげで、開発プロセスが向上した!
438デフォルトの名無しさん (ワッチョイ 6761-/Pym)
2024/12/10(火) 09:40:44.51ID:9vz9QL6n0 >>436
これで行くしかないのか
これで行くしかないのか
439デフォルトの名無しさん (ワッチョイ e707-f5HH)
2024/12/10(火) 10:01:08.05ID:gzrtf0Gl0 対応表をだーっと並べる、control_state_read_and_write(bool is_write, ...) みたいな関数を置く、など
割り切ってしまえば工夫のしがいはある
ただ、そのときはよくても、あとになってみたら黒魔術でしかなかったりする
愚直なのもいいぞ
割り切ってしまえば工夫のしがいはある
ただ、そのときはよくても、あとになってみたら黒魔術でしかなかったりする
愚直なのもいいぞ
440デフォルトの名無しさん (ワッチョイ ff5a-gNLw)
2024/12/10(火) 17:10:24.87ID:TsXGEoU20 >>435
何がどう"冗長になって見づらい"のか?
何がどう"冗長になって見づらい"のか?
441デフォルトの名無しさん (ワッチョイ bf79-/9Tr)
2024/12/10(火) 19:03:49.02ID:ruXLR+AW0 属人化だとか 尻アナルライブだとかあったような
442デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/10(火) 19:06:39.85ID:RLBTgK1d0 身体に刻む学習方法
443デフォルトの名無しさん (アウアウ Sa4f-f5HH)
2024/12/10(火) 21:11:22.07ID:RajTC0DHa >>422-424
ありがとん
ありがとん
444デフォルトの名無しさん (アウアウ Sa4f-f5HH)
2024/12/10(火) 21:43:52.59ID:RajTC0DHa これでなんか機能した
TCHAR buf[255];
this->GetWindowText(title, 255);
int len = _tcsclen(buf);
_sntprintf(buf + len, 255, " %d", uiWindowCount);
this->SetWindowText(buf);
TCHAR buf[255];
this->GetWindowText(title, 255);
int len = _tcsclen(buf);
_sntprintf(buf + len, 255, " %d", uiWindowCount);
this->SetWindowText(buf);
445デフォルトの名無しさん (ワッチョイ bf79-/9Tr)
2024/12/10(火) 21:51:03.48ID:ruXLR+AW0 this->
ナニコレ
もしかしてC言語スレでC++使えるぞあぴーるですか!
すげー
ナニコレ
もしかしてC言語スレでC++使えるぞあぴーるですか!
すげー
446はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4732-f5HH)
2024/12/10(火) 22:13:12.06ID:ujXLUuNp0447デフォルトの名無しさん (アウアウ Sa4f-f5HH)
2024/12/11(水) 07:46:28.90ID:P/b6xwK7a API自体はC言語なんでそこらへんはスルーでお願い
448はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4732-B9Rp)
2024/12/11(水) 14:36:37.44ID:fIut9/tx0
最近のRESTful APIについての議論に触発されてEchoAPIを試してみたところ、エンドポイントのシミュレーションツールがテストプロセスを非常に効率化してくれました。
450デフォルトの名無しさん (ワッチョイ 7f63-xJXv)
2024/12/11(水) 23:04:37.50ID:xKzgcnaC0 MSは採用していないのかな?
なんでこんなにバグが多いんだろう
なんでこんなにバグが多いんだろう
451デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 15:13:40.89ID:jrfqO5QN0 1つめのプロシージャで宣言した変数を2つ目のプロシージャで使うって頑張れば可能?
それともグローバル変数宣言したほうがいい?
それともグローバル変数宣言したほうがいい?
452デフォルトの名無しさん (ワッチョイ a301-aNNs)
2024/12/15(日) 15:17:17.63ID:Vq+PRAKz0 引数で渡せばいいんじゃね
453デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 15:23:28.37ID:jrfqO5QN0 >>452
それも考えたんだけど、プロシージャ作るときライブラリ側が指定した引数以外渡せないんじゃない?
それも考えたんだけど、プロシージャ作るときライブラリ側が指定した引数以外渡せないんじゃない?
454デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/15(日) 15:31:40.27ID:wmU+aa0b0 そのプロシージャーを同一モジュール内lに記述して、
変数をスタティック宣言する、とか
変数をスタティック宣言する、とか
455デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 15:38:22.49ID:jrfqO5QN0456デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/15(日) 15:45:22.53ID:wmU+aa0b0 ちょっと違う様な気がする
そのファイル内にある全ての関数から参照出来る宣言です
スタティック宣言を調べて見て
そのファイル内にある全ての関数から参照出来る宣言です
スタティック宣言を調べて見て
457デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 15:46:49.05ID:jrfqO5QN0458デフォルトの名無しさん (ワッチョイ 33b8-iztn)
2024/12/15(日) 16:32:34.62ID:jrfqO5QN0 調べてみたけど関数内に別の関数の処理はかけないっぽい?
とりあえず自前のソース書き換えてみたけどC2275が出てしまう
とりあえず自前のソース書き換えてみたけどC2275が出てしまう
459デフォルトの名無しさん (ブーイモ MM8a-1w4P)
2024/12/15(日) 16:54:06.72ID:Wjdp3H7kM モジュールとかプロシージャはc言語の用語ではないよ
誤解を生むからなるべく正しい用語で
あるいはソース書け
誤解を生むからなるべく正しい用語で
あるいはソース書け
460デフォルトの名無しさん (ワッチョイ a301-2Zui)
2024/12/15(日) 17:04:08.92ID:5Q71kCB70 Cで作ったソフトにアイコンをつける方法ありますか?
コンパイラはmingw
コンパイラはmingw
461はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/15(日) 17:07:42.25ID:SAQ/jMe00 >>460
リソーススクリプトを書いて windres コマンドでコンパイルしてリンク。
リソーススクリプトを書いて windres コマンドでコンパイルしてリンク。
462デフォルトの名無しさん (ワッチョイ 3338-UX28)
2024/12/15(日) 17:11:49.15ID:jrfqO5QN0 >>459
ウィンドウプロシージャでおk?
ウィンドウプロシージャでおk?
463はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/15(日) 17:25:02.46ID:SAQ/jMe00464デフォルトの名無しさん (ワッチョイ 4a12-O1Z7)
2024/12/15(日) 20:08:51.95ID:7bvd8wX+0 >>458
よくある質問に書いてあんだからそれを読めよ
よくある質問に書いてあんだからそれを読めよ
465デフォルトの名無しさん (ワッチョイ 4aa2-SaU4)
2024/12/15(日) 21:32:26.28ID:8K4C8OcF0 2つ目のプロシージャってなんやねん
466デフォルトの名無しさん (オッペケ Srb3-aNNs)
2024/12/16(月) 07:18:55.27ID:Y4GCxOlhr 今北
何のデータかわからんが、だれに属しているデータなのやら
「全然関係ないところ」には、置かないほうがいいぞ少なくとも
何のデータかわからんが、だれに属しているデータなのやら
「全然関係ないところ」には、置かないほうがいいぞ少なくとも
467デフォルトの名無しさん (ワッチョイ 3369-iztn)
2024/12/16(月) 18:03:11.25ID:o/MtQx1A0 下記のコードのsizeof(buf)/sizeof(TCHAR)ってなんの意味があるの?
ただのsizeof(buf)じゃだめ?
static int num;
TCHAR buf[8];
stprintf_s(buf,sizeof(buf)/sizeof(TCHAR), TEXT("%d"), num);
ただのsizeof(buf)じゃだめ?
static int num;
TCHAR buf[8];
stprintf_s(buf,sizeof(buf)/sizeof(TCHAR), TEXT("%d"), num);
468デフォルトの名無しさん (ワッチョイ 3369-iztn)
2024/12/16(月) 18:17:40.10ID:o/MtQx1A0 >>463
なるほどね、それで行けるかありがとう
なるほどね、それで行けるかありがとう
469デフォルトの名無しさん (ワッチョイ 3369-iztn)
2024/12/16(月) 18:18:31.53ID:o/MtQx1A0 >>466
自分の知識だと外に置くくらいしか思いつかんかった
自分の知識だと外に置くくらいしか思いつかんかった
470デフォルトの名無しさん (ワッチョイ 666d-1w4P)
2024/12/16(月) 18:20:09.41ID:/03Ox5VG0 TCHARは_UNICODEのマクロの定義の有無によって16bitまたは8bitになる
471はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-aNNs)
2024/12/16(月) 18:26:34.86ID:26oXJeTE0 >>467
> ただのsizeof(buf)じゃだめ?
だめ。
TCHAR はコンパイル時に ANSI モードか Unicode モードかで定義が切り替わる。
ANSI モードのときは char で Unicode モードのときは WCHAR と同じ。
_stprintf_s も ANSI モードのときは sprintf_s に置き換えられて Unicode モードのときは swprintf_s になる。
swprintf_s のときの第一引数は文字数 (この場合は UTF-16 でのコードポイントの数) なのでバイト数である sizeof(buf) を渡しても駄目。
ANSI モードでしかコンパイルしないのであれば別に割らなくても大丈夫だけど、それならそもそも切り替えを前提としたマクロを使う必要ないしな……。
> ただのsizeof(buf)じゃだめ?
だめ。
TCHAR はコンパイル時に ANSI モードか Unicode モードかで定義が切り替わる。
ANSI モードのときは char で Unicode モードのときは WCHAR と同じ。
_stprintf_s も ANSI モードのときは sprintf_s に置き換えられて Unicode モードのときは swprintf_s になる。
swprintf_s のときの第一引数は文字数 (この場合は UTF-16 でのコードポイントの数) なのでバイト数である sizeof(buf) を渡しても駄目。
ANSI モードでしかコンパイルしないのであれば別に割らなくても大丈夫だけど、それならそもそも切り替えを前提としたマクロを使う必要ないしな……。
472デフォルトの名無しさん (ワッチョイ 3369-iztn)
2024/12/16(月) 22:06:23.18ID:o/MtQx1A0 Unicodeになるとなんで割る必要が出てくるのかいまいち掴めないなあ
BuffのサイズをTCHARのサイズで割ってどうしてサイズが出せるの?
BuffのサイズをTCHARのサイズで割ってどうしてサイズが出せるの?
473デフォルトの名無しさん (ワッチョイ 666d-1w4P)
2024/12/16(月) 22:41:01.10ID:/03Ox5VG0474はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/16(月) 22:48:31.98ID:26oXJeTE0 配列の大きさを得るために配列のバイト数を配列要素のバイト数で割るのはごく一般的なイディオムなので何がわからないのかわからない。
これらのアイデアを実装するために取り組んでいる中で、EchoAPIが設計ワークフローを本当に効率化してくれた
476デフォルトの名無しさん
2024/12/17(火) 00:02:56.65ID:KLd2kDAJ0 >>472
Unicodeの場合、2バイトで1文字を表現
@@AABBCCDDEEFFGGHH で9文字、18バイト
ANSIの場合、
@ABCDEFGH で9文字、9バイト
> sizeof(buf)/sizeof(TCHAR)
sizeof(buf)が指すのはバイト数、Unicodeなら18、ANSIなら9
sizeof(TCHAR)が指すのは1文字のバイト数、Unicodeなら2、ANSIなら1
そして stprintf_s の引数 sizeOfBufferはバイト数ではなく「格納する最大文字数」であること
引数がバイト数ならsizeof(buf)でいいけど、引数が文字数を求めているならsizeof(buf)ではおかしくなる
上の例で言えば、Unicodeは18バイト9文字で本来は9とするところを18と指定してしまうことになる
すると関数側はバッファが18文字分(バイトで32バイト)あると勘違いするわけでバッファオーバーフローを起こす
sizeof(buf)/sizeof(TCHAR) は18バイトの領域があって、それを1文字のバイト数で割って「9文字」ということ
Unicodeの場合、2バイトで1文字を表現
@@AABBCCDDEEFFGGHH で9文字、18バイト
ANSIの場合、
@ABCDEFGH で9文字、9バイト
> sizeof(buf)/sizeof(TCHAR)
sizeof(buf)が指すのはバイト数、Unicodeなら18、ANSIなら9
sizeof(TCHAR)が指すのは1文字のバイト数、Unicodeなら2、ANSIなら1
そして stprintf_s の引数 sizeOfBufferはバイト数ではなく「格納する最大文字数」であること
引数がバイト数ならsizeof(buf)でいいけど、引数が文字数を求めているならsizeof(buf)ではおかしくなる
上の例で言えば、Unicodeは18バイト9文字で本来は9とするところを18と指定してしまうことになる
すると関数側はバッファが18文字分(バイトで32バイト)あると勘違いするわけでバッファオーバーフローを起こす
sizeof(buf)/sizeof(TCHAR) は18バイトの領域があって、それを1文字のバイト数で割って「9文字」ということ
477デフォルトの名無しさん
2024/12/17(火) 00:05:50.03ID:KLd2kDAJ0 丸付き数字自体が1文字1バイトって意味じゃないからな
内部表現を表すために使用しただけで数字がx文字目として見て
内部表現を表すために使用しただけで数字がx文字目として見て
478デフォルトの名無しさん (アウアウエー Sae2-N2kD)
2024/12/17(火) 10:25:09.48ID:hEkGaD6xa _countof()
479デフォルトの名無しさん (ワッチョイ 666d-1w4P)
2024/12/17(火) 12:09:40.76ID:2fZmW/080 いやvc++使ってんならstd::sizeでいい
480デフォルトの名無しさん (ササクッテロロ Spb3-DtHK)
2024/12/17(火) 12:36:10.86ID:5c2Y3gwMp C言語スレだろw
481デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/17(火) 12:49:19.32ID:6SQ8uEd20 そこは禁欲しましょう
482デフォルトの名無しさん (ワッチョイ 33ef-iztn)
2024/12/18(水) 01:25:30.31ID:ILkVh3nA0483デフォルトの名無しさん
2024/12/18(水) 02:49:26.43ID:NqM0X43U0 >>482
ANSIはバイト=文字数
そもそも論理的な文字数じゃなくて処理単位での文字数ね
だから strlen("あいう") = 6
strlen("123あ67い0") = 10 // 数字は半角(1バイト)、ひらがなは全角(2バイト)
Unicodeの場合でも正しい文字数になるわけじゃない、サロゲートペアの場合に文字数は2(4バイト)になる
ANSIはバイト=文字数
そもそも論理的な文字数じゃなくて処理単位での文字数ね
だから strlen("あいう") = 6
strlen("123あ67い0") = 10 // 数字は半角(1バイト)、ひらがなは全角(2バイト)
Unicodeの場合でも正しい文字数になるわけじゃない、サロゲートペアの場合に文字数は2(4バイト)になる
484はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/18(水) 09:23:44.77ID:w442kBzm0 Unicode だとサロゲートペアを脇においても異体字だの合成だのといったものがあるし、人間が紙の上に書くときの直感的な感覚で言うところの「文字数」とは定義が違うので、各文字コードの仕組みを知っておくしか仕方がない。
485デフォルトの名無しさん (ワッチョイ 3339-iztn)
2024/12/18(水) 17:31:07.70ID:ILkVh3nA0486デフォルトの名無しさん (ワッチョイ 8b93-1p0V)
2024/12/18(水) 17:41:39.49ID:NuF84nX60 文字コード問題よりC言語で作れってほうがハゲりそうだ
487デフォルトの名無しさん (ワンミングク MMda-UGgi)
2024/12/18(水) 17:56:26.27ID:2i1n2GHXM 固定長ならそこまで禿げないかと
488デフォルトの名無しさん (ワッチョイ 66be-1w4P)
2024/12/18(水) 18:24:42.01ID:ccS3E3GJ0489デフォルトの名無しさん (ワッチョイ 2679-qWVo)
2024/12/18(水) 18:25:51.62ID:U+/f/ac80 CがC++だったとしても変わらんでしょ
VSCodeはレンダリングの都合でWebルレームワークとjavascriptで作られてるからC/C++製エディタと比較して遅いというデメリットがある
VSCodeはレンダリングの都合でWebルレームワークとjavascriptで作られてるからC/C++製エディタと比較して遅いというデメリットがある
490デフォルトの名無しさん (ワッチョイ 66be-1w4P)
2024/12/18(水) 18:34:50.50ID:ccS3E3GJ0 c言語で文字列処理はクソ面倒でしょ
ライブラリの整備からやる必要がある上にコードがとっ散らかる
ライブラリの整備からやる必要がある上にコードがとっ散らかる
491デフォルトの名無しさん (ワッチョイ 2679-qWVo)
2024/12/18(水) 18:36:51.22ID:U+/f/ac80 Windowsの場合使用フォントに応じて描画幅を返すAPIに丸投げできるから大した手間にならないが
メモ帳の「右端で折り返す」相当を実装する場合右端のどこで切るかでその人センスが露になる
メモ帳の「右端で折り返す」相当を実装する場合右端のどこで切るかでその人センスが露になる
492デフォルトの名無しさん (ワッチョイ 2679-qWVo)
2024/12/18(水) 18:41:35.77ID:U+/f/ac80 >>480
何か誤解があるみたいだが開発言語にCを選ぶようなやつがそんなのを面倒に感じる事はないんだよ
何か誤解があるみたいだが開発言語にCを選ぶようなやつがそんなのを面倒に感じる事はないんだよ
493はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-aNNs)
2024/12/18(水) 22:35:54.78ID:w442kBzm0 アプリケーションを作るにあたって TCHAR が必要になる状況はそれほどない。
Unicode 対応をきちんとやるならそれとは別に ANSI 版も作るという必要性はないし、両方を作る必要性がないなら切り替えを意識する必要もないから。
最初から WCHAR で書けばよい。
ライブラリとしてまとめるならどちらにも対応したほうが良いこともあるかもしれんけど。
Unicode 対応をきちんとやるならそれとは別に ANSI 版も作るという必要性はないし、両方を作る必要性がないなら切り替えを意識する必要もないから。
最初から WCHAR で書けばよい。
ライブラリとしてまとめるならどちらにも対応したほうが良いこともあるかもしれんけど。
494デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/18(水) 23:14:04.02ID:1nhczz8f0 テキストエディタ、アセンブラで作った奴いるだろう
ハゲてはいなかったと思う
ハゲてはいなかったと思う
495デフォルトの名無しさん (アウアウエー Sae2-N2kD)
2024/12/19(木) 15:05:41.21ID:p9TYuGiMa >>483
strlen("123あ67い0") == 12 // utf-8
strlen("123あ67い0") == 12 // utf-8
496デフォルトの名無しさん (ワッチョイ be63-Vy5I)
2024/12/19(木) 15:35:21.01ID:boHB/shj0 strcat()、実装大変そうだな
497デフォルトの名無しさん (ワッチョイ eaad-NYGQ)
2024/12/19(木) 18:03:52.50ID:KNZC4rFA0 UTF-8のバイト数ではなく文字列の長さを調べるソース
https://drive.google.com/drive/folders/10jgzKVUYPXQhC566bBmrqnnBLJI4pEbL
https://drive.google.com/drive/folders/10jgzKVUYPXQhC566bBmrqnnBLJI4pEbL
498デフォルトの名無しさん (ブーイモ MMbf-1w4P)
2024/12/19(木) 18:29:36.25ID:ByBpVqn8M499デフォルトの名無しさん (ワッチョイ eaad-NYGQ)
2024/12/19(木) 18:32:55.82ID:KNZC4rFA0500デフォルトの名無しさん (ワッチョイ 4a5b-SaU4)
2024/12/19(木) 18:34:44.41ID:hCGKCs/t0 👩🏽👩🏿👧🏻👧🏽
501デフォルトの名無しさん (ブーイモ MMbf-1w4P)
2024/12/19(木) 18:41:15.54ID:ByBpVqn8M502デフォルトの名無しさん (ワッチョイ eaad-NYGQ)
2024/12/19(木) 18:45:26.23ID:KNZC4rFA0503デフォルトの名無しさん (ブーイモ MMbf-1w4P)
2024/12/19(木) 18:50:39.22ID:ByBpVqn8M504デフォルトの名無しさん (ワッチョイ eaad-NYGQ)
2024/12/19(木) 18:52:55.31ID:KNZC4rFA0505デフォルトの名無しさん (ワッチョイ 4a5b-SaU4)
2024/12/19(木) 19:11:26.12ID:hCGKCs/t0 ﷽は1文字か?
506デフォルトの名無しさん (ワッチョイ eaad-NYGQ)
2024/12/19(木) 19:27:41.47ID:KNZC4rFA0507デフォルトの名無しさん (ワッチョイ 4a5b-SaU4)
2024/12/19(木) 19:38:58.12ID:hCGKCs/t0508デフォルトの名無しさん (ワッチョイ 66fc-1w4P)
2024/12/19(木) 19:46:58.36ID:zv08w2oi0 main関数用のヘッダファイル用意してて草
509デフォルトの名無しさん (ワッチョイ b704-1exS)
2024/12/19(木) 19:59:42.44ID:iU+Lg9qY0 unicode怖ひ
510デフォルトの名無しさん (オッペケ Srb3-aNNs)
2024/12/19(木) 20:00:17.69ID:y/hB6qNpr511はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f32-782k)
2024/12/19(木) 22:28:22.60ID:uLfYubV70512デフォルトの名無しさん (ワッチョイ eb78-RqoG)
2024/12/20(金) 15:28:36.64ID:raronLtC0 JAIST、「並行量子通信プロトコル」の完全な自動形式検証を実現
http://news.mynavi.jp/techplus/article/20241220-3090485/
http://news.mynavi.jp/techplus/article/20241220-3090485/
最近のRESTful APIについての議論に触発されてEchoAPIを試してみたところ、エンドポイントのシミュレーションツールがテストプロセスを非常に効率化してくれた
514デフォルトの名無しさん (ワッチョイ 3351-iztn)
2024/12/21(土) 07:13:36.08ID:37tGDg2N0 IsWindowVisible
IsWindowEnabled
EnableWindow
のダイアログ版教えてくりゃ
IsWindowEnabled
EnableWindow
のダイアログ版教えてくりゃ
515デフォルトの名無しさん (アウアウエー Sae2-N2kD)
2024/12/21(土) 10:49:43.14ID:bIHzWCsda GetWindowHandle
516デフォルトの名無しさん (ワッチョイ 3351-iztn)
2024/12/21(土) 21:59:52.73ID:37tGDg2N0 >>515
つまりどういうことだってばよ
つまりどういうことだってばよ
517デフォルトの名無しさん (ワッチョイ 66bf-1w4P)
2024/12/21(土) 22:49:23.50ID:Bjr5M2i00 >>516
Win32の板できけ
Win32の板できけ
518デフォルトの名無しさん (ワッチョイ eb53-XATa)
2024/12/22(日) 02:23:50.05ID:SmvDArN50 >>517
なるほど
なるほど
519デフォルトの名無しさん (ワッチョイ 8a2d-f1r3)
2024/12/29(日) 08:16:36.48ID:5Nra/jss0 %*d
こんなの初めて知った
B1.3 Formatted Inputに載ってたけど読んでなかった
こんなの初めて知った
B1.3 Formatted Inputに載ってたけど読んでなかった
(s)scanfのフォーマット引数もパターンマッチのように使えて便利だったり
521デフォルトの名無しさん (ワッチョイ 9aad-Udw9)
2024/12/30(月) 16:23:40.30ID:QwWcwTek0522デフォルトの名無しさん (アウアウエー Sa52-fscC)
2024/12/31(火) 13:18:32.28ID:dvbSbmj1a 実は正規表現が使えるんだぜ
523デフォルトの名無しさん (ワッチョイ 4e63-3FWJ)
2024/12/31(火) 13:46:40.77ID:KJy4fxay0 ネイピア数や円周率を誤差ナシで扱えると嬉しい
524デフォルトの名無しさん (ワッチョイ 0e76-+EE9)
2025/01/02(木) 15:48:37.33ID:8mwDch1n0 円周率って math.h とかに入っているの?
それとも
pi = 4.0 * atan(1.0);
とかで持ってくるものなの?
それとも
pi = 4.0 * atan(1.0);
とかで持ってくるものなの?
525はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9732-mOud)
2025/01/02(木) 19:46:55.76ID:dC27qXct0 >>524
言語仕様にはないが、処理系によっては有ることもある。
特定の環境でコンパイル・実行できればよいならそれを使えばいいし、そうでないなら工夫も必用だろうし……
どのくらい移植性に配慮するかによるんじゃないの。
言語仕様にはないが、処理系によっては有ることもある。
特定の環境でコンパイル・実行できればよいならそれを使えばいいし、そうでないなら工夫も必用だろうし……
どのくらい移植性に配慮するかによるんじゃないの。
526はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9732-mOud)
2025/01/02(木) 19:58:10.79ID:dC27qXct0 double の精度が有限な以上は無理数を誤差なく扱うのは不可能だし、どうしてもやりたいなら数値計算ではなく解析的な計算をするしかない。
ただ、工学的な用途だと誤差をゼロにする意味はあまりないことが多くて、誤差の程度が保証されることが需要。
たとえば分子一個分より小さい桁の部分で正確でも何にも使えないから考えるだけ無駄でしょ。
ただ、工学的な用途だと誤差をゼロにする意味はあまりないことが多くて、誤差の程度が保証されることが需要。
たとえば分子一個分より小さい桁の部分で正確でも何にも使えないから考えるだけ無駄でしょ。
527デフォルトの名無しさん (ワッチョイ 0e76-+EE9)
2025/01/02(木) 22:08:15.15ID:8mwDch1n0 ちょっと解析的な計算というのが正確にわかっていない
数値的な計算というのは有限差分法とか用いて近似的な解を求める方法だよね?
解析的な計算というのは a *x^2 + b * x + c = 0 なら手計算で解けるよというやり方?
使ったこと無いけどマスマティカとかそういうソフトだっけ?
数値的な計算というのは有限差分法とか用いて近似的な解を求める方法だよね?
解析的な計算というのは a *x^2 + b * x + c = 0 なら手計算で解けるよというやり方?
使ったこと無いけどマスマティカとかそういうソフトだっけ?
528はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9732-mOud)
2025/01/02(木) 23:00:55.85ID:dC27qXct0 >>527
そう。 要は数式の変形で解くやりかたってこと。
どのくらいのものを扱いたいかによるけど四則演算と巾乗くらいからなる簡単な式を扱えればよいなら C で書いてもそれほど高度というほどではない。
リスト構造を作って切り貼りするってだけなので。
とはいえ、計算を始めたいときにやる下準備としてはかなり面倒臭いだろうとは思うけど。
そう。 要は数式の変形で解くやりかたってこと。
どのくらいのものを扱いたいかによるけど四則演算と巾乗くらいからなる簡単な式を扱えればよいなら C で書いてもそれほど高度というほどではない。
リスト構造を作って切り貼りするってだけなので。
とはいえ、計算を始めたいときにやる下準備としてはかなり面倒臭いだろうとは思うけど。
529デフォルトの名無しさん (ワッチョイ 0e76-+EE9)
2025/01/03(金) 13:18:29.38ID:4R6C6cdS0 なるほどね、解を公式化しておいて虚数が必要か判定する感じだろうね
530デフォルトの名無しさん (アウアウエー Sa23-Y8TR)
2025/01/05(日) 10:58:58.82ID:8kdOFrcZa πをπのまま計算して最後にmπで出力してくれれば良いのにと思うことは多い
531はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9932-8Wha)
2025/01/05(日) 11:04:48.60ID:caTYcs4C0532高卒工員 ◆rysjzJ5XpQ (ドコグロ MMde-pbJa)
2025/01/13(月) 10:59:54.95ID:EpHsvAOYM 「」
533デフォルトの名無しさん (アウアウウー Sa91-HZB4)
2025/01/17(金) 16:58:25.38ID:GO6/DX25a Cの糞仕様でmath.hインクルードしてなくても
int hoge(int) って解釈されるから
本当は double hoge(double) だったり float hoge(float) だったりしても
コンパイルだけ通ってリンク後に問題起こすってのが昔はあったな
int hoge(int) って解釈されるから
本当は double hoge(double) だったり float hoge(float) だったりしても
コンパイルだけ通ってリンク後に問題起こすってのが昔はあったな
534デフォルトの名無しさん (ワッチョイ 862a-Zdzc)
2025/01/17(金) 18:21:44.43ID:eoeaxZuy0 error: implicit declaration of function 'hoge' にならないの?
535デフォルトの名無しさん (ワッチョイ 555b-pCI4)
2025/01/17(金) 18:47:49.86ID:is0uPVRE0 1のサンプルコードでコンパイル通らなかったから2のコードのようにキャストしたんだけど動き的には同じだよね?
1,pStrIndex = malloc(sizeof(TCHAR*) * count);
2,pStrIndex = (TCHAR**)malloc(sizeof(TCHAR*) * count);
1,pStrIndex = malloc(sizeof(TCHAR*) * count);
2,pStrIndex = (TCHAR**)malloc(sizeof(TCHAR*) * count);
536デフォルトの名無しさん (ワッチョイ 6a17-wArI)
2025/01/17(金) 19:25:43.49ID:aSzNgrb80 だまってC++のスレいけよ
537デフォルトの名無しさん (ワッチョイ 8663-Z6+G)
2025/01/17(金) 19:31:42.24ID:frJzdCet0 先に心療内科の外来に相談した方が良い
538はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2932-puiI)
2025/01/17(金) 21:10:14.26ID:SH5Lw3P50 >>533
厳密に言うと extern int hoge(); と暗黙に宣言したかのように扱うルールだった。 C89 では。
C99 で削除されたルールだけど今でも警告付きで通してしまう処理系はあるな。
厳密に言うと extern int hoge(); と暗黙に宣言したかのように扱うルールだった。 C89 では。
C99 で削除されたルールだけど今でも警告付きで通してしまう処理系はあるな。
539はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2932-puiI)
2025/01/17(金) 23:50:49.72ID:SH5Lw3P50 >>535
C では void* から他のポインタへ暗黙の型変換が許されるが C++ では許されない。
コンパイルエラーになってるならたぶん C++ を書いてる。
(処理系によってはオプションでエラーや警告を制御できることもあるけど。)
C では void* から他のポインタへ暗黙の型変換が許されるが C++ では許されない。
コンパイルエラーになってるならたぶん C++ を書いてる。
(処理系によってはオプションでエラーや警告を制御できることもあるけど。)
540デフォルトの名無しさん (ワッチョイ cf76-7Mnr)
2025/01/19(日) 13:12:34.18ID:pnTgRmOE0 二次方程式を式変形で解くのは「代数的」な解法な気がする
「数値的」解法はコンピュータ利用?、「解析的」解法?
「数値的」解法はコンピュータ利用?、「解析的」解法?
541デフォルトの名無しさん (ブーイモ MM1f-Bxv4)
2025/01/19(日) 13:18:38.18ID:ix4t29qjM そんな用語の意味ごとき自分で調べてわからんか?
542デフォルトの名無しさん (アウアウウー Saa7-C2Lh)
2025/01/20(月) 13:48:58.08ID:G+ryJ45Ga 「二次方程式を式変形で解く」の意味が
ax^2+bx+c=0 の解 α, β をそれぞれ a, b, c の式で表す
という意味なら代数的解法か?単に構文解析の気もするが
α, β を浮動小数点数(複素数を含む)で表す
という意味なら数値的解法か?解析的解法か?
単に解の公式に代入してるなら解析的解法の訳が無い罠
ax^2+bx+c=0 の解 α, β をそれぞれ a, b, c の式で表す
という意味なら代数的解法か?単に構文解析の気もするが
α, β を浮動小数点数(複素数を含む)で表す
という意味なら数値的解法か?解析的解法か?
単に解の公式に代入してるなら解析的解法の訳が無い罠
543デフォルトの名無しさん (ワッチョイ 7f9a-eCkH)
2025/01/20(月) 15:06:20.10ID:rx9N4QIY0 元の発言はたぶん円周率を近似値に置き換えないぐらいのことが言いたかっただけでしょ
5chのコテハンなんだからたいして考えてモノ言ってるわけじゃないだろうよ
5chのコテハンなんだからたいして考えてモノ言ってるわけじゃないだろうよ
544デフォルトの名無しさん (ワッチョイ cf63-uhza)
2025/01/20(月) 17:55:23.24ID:CIg2w/Qm0 円周率は大体3
545デフォルトの名無しさん (ワッチョイ bf2d-nfRJ)
2025/01/20(月) 20:30:52.25ID:pd7YCKBV0 奥村先生のアルゴリズム事典に二次方程式を解くコードが載ってる
解の公式だけで解くと桁落ちが生じるので解と係数の関係も使ってる。
解の公式だけで解くと桁落ちが生じるので解と係数の関係も使ってる。
546デフォルトの名無しさん (ワッチョイ ff60-pJ9J)
2025/01/20(月) 23:33:08.85ID:acq30m6X0 ポインタについて分かりやすく説明してくんろ
547デフォルトの名無しさん (アウアウウー Saa7-C2Lh)
2025/01/21(火) 08:28:35.17ID:yRL5l1cZa 最近どっかで観た流れだな
はちみつのコピペか
はちみつのコピペか
548デフォルトの名無しさん (ワッチョイ cf49-7Mnr)
2025/01/21(火) 19:43:21.46ID:OWL66YDB0 コンピュータのマシン語は高級言語で言うところの「変数名」による識別子は存在しない
なにによって識別するかは
レジスタの固有名詞か
メモリでの記憶場所を示すメモリアドレス
メモリアドレスを記憶させる変数やレジスタを
特にポインタ変数やポインタレジスタと呼んでいる
なにによって識別するかは
レジスタの固有名詞か
メモリでの記憶場所を示すメモリアドレス
メモリアドレスを記憶させる変数やレジスタを
特にポインタ変数やポインタレジスタと呼んでいる
549デフォルトの名無しさん (ワッチョイ 7f07-BCxs)
2025/01/22(水) 00:18:16.97ID:4EbDFbn90 生ポは人類には早かったってばっちゃんが言ってた
ポインタには型があってだな、
intとか自分で定義した構造体とかの型が
ポインタが指すアドレスを起点にそれらの型(ポインタの型)が配置されているかのようにメモリにアクセスするできるようにすることだよ
アドレスには型がないけど(変な言い方だけど)そこにintがあるとかFILE構造体があるとか、そこにその型があるとしてポインタが指すからある
そうでなければただのバイトの列
intとかcharなどのプリミティブな型でなく、構造体からイメージした方が分かりやすくないかな
intとか自分で定義した構造体とかの型が
ポインタが指すアドレスを起点にそれらの型(ポインタの型)が配置されているかのようにメモリにアクセスするできるようにすることだよ
アドレスには型がないけど(変な言い方だけど)そこにintがあるとかFILE構造体があるとか、そこにその型があるとしてポインタが指すからある
そうでなければただのバイトの列
intとかcharなどのプリミティブな型でなく、構造体からイメージした方が分かりやすくないかな
551デフォルトの名無しさん (ワッチョイ cf49-7Mnr)
2025/01/22(水) 01:50:31.22ID:NkElh8NB0 そうだね p++ で数値が sizeof(*p)増える
552デフォルトの名無しさん (ワッチョイ cf49-7Mnr)
2025/01/22(水) 17:48:11.49ID:NkElh8NB0 CもだけどC++やJavaなり関数や変数、メソッドやメンバーを参照できる範囲を絞って
安全を確保しようとしているよね
でもコンパイル後の実行コードで関数や変数のスコープチェックとかしていないしできないよね
スコープがどうであれポインタ経由で場所がわかっちゃうんだし
無能プログラマの糞コード避けにはなるけどマルウェア対策にはならないということかな
安全を確保しようとしているよね
でもコンパイル後の実行コードで関数や変数のスコープチェックとかしていないしできないよね
スコープがどうであれポインタ経由で場所がわかっちゃうんだし
無能プログラマの糞コード避けにはなるけどマルウェア対策にはならないということかな
553デフォルトの名無しさん (ワッチョイ ff79-EhoM)
2025/01/22(水) 19:26:53.41ID:6faY8jOE0 ぬるぽ
554デフォルトの名無しさん (ワッチョイ cf63-uhza)
2025/01/22(水) 19:44:26.98ID:9LZoVYPp0 このスレで良い度胸してるぜ笑
555はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4397-kbno)
2025/01/23(木) 00:44:38.67ID:fx1H86wZ0 >>546
ポインタをテーマにした本がある。
丁寧に説明しようとすれば本一冊分程度の分量は語れるってことだ。
それを掲示板で書ける程度の分量でより分かりやすくするのは無理だよ。
まずは入門書を読んだ上でわからないことがあれば具体的に質問して。
ポインタをテーマにした本がある。
丁寧に説明しようとすれば本一冊分程度の分量は語れるってことだ。
それを掲示板で書ける程度の分量でより分かりやすくするのは無理だよ。
まずは入門書を読んだ上でわからないことがあれば具体的に質問して。
556デフォルトの名無しさん (ワッチョイ 0301-BCxs)
2025/01/23(木) 19:20:25.44ID:ruQDamXZ0 ポインタがすっと理解できない人はC言語は向いてないと思う
557デフォルトの名無しさん (ワッチョイ d3a3-85Rc)
2025/01/23(木) 19:58:25.66ID:vkyBSe+H0 メモリの番地を直接指してるってだけの話なのに文法が意味不明なのが悪い
558デフォルトの名無しさん (ワッチョイ cf63-uhza)
2025/01/23(木) 20:11:15.05ID:aOKdPI1Y0 Basicみたいに配列で操作すれば分かりやすいぞ 笑
559デフォルトの名無しさん (ワッチョイ cf76-7Mnr)
2025/01/23(木) 20:41:15.58ID:1Dl3E2N00 前橋和弥って人の本読んで理解した 長らく絶版だったようだが後継本がある
560デフォルトの名無しさん (ワッチョイ cf91-Mwn+)
2025/01/23(木) 21:30:26.88ID:auGoEn4C0561デフォルトの名無しさん (ワッチョイ bf2d-nfRJ)
2025/01/25(土) 14:13:44.88ID:6VZytBSB0 秘伝C言語問答 ポインタ編
562デフォルトの名無しさん (ワッチョイ cf2a-wVPw)
2025/01/25(土) 20:08:03.53ID:ZNC43F5H0 ポインタと云うは死ぬ事と見付けたり
563デフォルトの名無しさん (ワッチョイ cf63-uhza)
2025/01/25(土) 20:36:32.21ID:KsLTQwZH0 ポインタには殺傷能力があります。
使う人は銃器の取扱免許が必須です。
使う人は銃器の取扱免許が必須です。
564デフォルトの名無しさん (アウアウエー Sa52-FFa5)
2025/01/26(日) 22:56:06.95ID:s+0AyHDZa ただのアドレッシング
++したり+=1したら判る
++したり+=1したら判る
565デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/28(火) 10:28:12.96ID:q8xQ82Vup ねえよ
おまえらなら配列ですら殺傷能力あるだろw
おまえらなら配列ですら殺傷能力あるだろw
566デフォルトの名無しさん (ワッチョイ 1759-y8H9)
2025/01/28(火) 14:54:54.74ID:CBv6ZpxK0 配列で死ぬ奴は四天王でも最弱な奴
567デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/28(火) 20:42:19.32ID:C7gY9jH/0 だからさぁ 変数や関数スコープって アドレスでアクセスされたら
アクセス拒否できる仕組みは無いよね?
アクセス拒否できる仕組みは無いよね?
568デフォルトの名無しさん (ワッチョイ 0b01-cjCd)
2025/01/29(水) 06:54:15.10ID:NyAjG/eE0 で?
569デフォルトの名無しさん (ワッチョイ 1aae-qYXa)
2025/01/29(水) 15:06:45.80ID:S8KruiE+0 あったらCの柔軟性が失われると思います
570デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/29(水) 15:10:06.13ID:8Al2cjCTp さすがにセグメント違反は弾かれるぞ
まあ、CPUやOSの機能だけどな
まあ、CPUやOSの機能だけどな
571デフォルトの名無しさん (ワッチョイ fa07-cjCd)
2025/01/29(水) 15:25:45.05ID:ViyYX/ol0 雑談として
いろいろチェックのついたポインタがあっても、それをOFFにできれば問題ないんだぞ
スピードの要らないところにもCは使われているので、そういう部分は、「ごてごて」でもいいんだよ
いろいろチェックのついたポインタがあっても、それをOFFにできれば問題ないんだぞ
スピードの要らないところにもCは使われているので、そういう部分は、「ごてごて」でもいいんだよ
572デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/29(水) 19:33:45.26ID:0piGtrVr0 いやポインタのはなしをしたいのではなくて
高級言語で設計制限を行うことで可読性や設計ミスが高まるという言説があるよね
構造化プログラミングやオブジェクト指向の類
でも実際稼働するのはコンパイル後のマシン語で
gotoというかジャンプ命令もあれば
プライベートへのアクセスを実行時にチェックする機構とか無いわけでしょ
不具合調査はソースコードも大事だけどマシン語の流れも追わなけば
本当のところはわからんよね
更には投機実行や分岐予測もあるわけで
実際の稼働はソースコードによらないしマシン語とも異なる可能性が存在する
高級言語で設計制限を行うことで可読性や設計ミスが高まるという言説があるよね
構造化プログラミングやオブジェクト指向の類
でも実際稼働するのはコンパイル後のマシン語で
gotoというかジャンプ命令もあれば
プライベートへのアクセスを実行時にチェックする機構とか無いわけでしょ
不具合調査はソースコードも大事だけどマシン語の流れも追わなけば
本当のところはわからんよね
更には投機実行や分岐予測もあるわけで
実際の稼働はソースコードによらないしマシン語とも異なる可能性が存在する
573デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/29(水) 19:43:26.10ID:4AeLlQVLp え?
最終的にCPUはマシン語として解釈して動くだけだからなぁ
人間がどう捉えようがそこは変えようが無いんだ
最終的にCPUはマシン語として解釈して動くだけだからなぁ
人間がどう捉えようがそこは変えようが無いんだ
574デフォルトの名無しさん (ワッチョイ 4e63-W7nG)
2025/01/29(水) 22:18:59.64ID:Ow/mCh010 会話として成立していますか?
575デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/30(木) 00:57:38.52ID:dOgLqtqk0 例えば goto文を可能な限り排除して構造化プログラミングというものが提唱されてきた
でもコンパイル後のマシン語にはむき出しのジャンプ命令が使われる
構造化されたループや分岐も実際はジャンプ命令
処理のトレースでもデバッグでもソースコードとマシン語と両方追う必要があるが
goto文を排除した理念の意味が…
ソースコードは見やすいがマシン語はそうではないよね?っていう愚痴のようなもの
でもコンパイル後のマシン語にはむき出しのジャンプ命令が使われる
構造化されたループや分岐も実際はジャンプ命令
処理のトレースでもデバッグでもソースコードとマシン語と両方追う必要があるが
goto文を排除した理念の意味が…
ソースコードは見やすいがマシン語はそうではないよね?っていう愚痴のようなもの
576デフォルトの名無しさん (ワッチョイ 4e2a-cFDo)
2025/01/30(木) 08:50:49.07ID:w2UDYxPo0 むき出しのジャンプ命令...
赤裸々なMovとか、一糸まとわぬAdd とか。
赤裸々なMovとか、一糸まとわぬAdd とか。
577デフォルトの名無しさん (ワッチョイ a75f-7ROj)
2025/01/30(木) 09:29:28.34ID:x87hbq3s0 コンパイラひバグが無いかぎりは高級言語のソース通りに動くから大丈夫だぞ
昔のファミコン並みに処理ステップ数に要するクロックを数えてラインスクロールさせるとかでもしない限りタイミングも気にする必要無いし
昔のファミコン並みに処理ステップ数に要するクロックを数えてラインスクロールさせるとかでもしない限りタイミングも気にする必要無いし
578デフォルトの名無しさん (ワッチョイ fa07-cjCd)
2025/01/30(木) 11:48:21.95ID:1fx7BZxf0 むしろマルチコアの問題のほうがでかい 自分も、高効率に書ける自信がない
579デフォルトの名無しさん (ワッチョイ 0e00-BqhG)
2025/01/30(木) 12:22:11.10ID:K2FsQpfY0 C言語に限らずJavaでもPythonでもLispでも最終的にはブランチしまくりヒープアクセスしまくりなマシン語で動いてるんだから心配しても意味ない。
たまたまC言語はマシン語に近い距離にある言語なのでマシン語「でも」デバッグできてしまうだけの話。
たまたまC言語はマシン語に近い距離にある言語なのでマシン語「でも」デバッグできてしまうだけの話。
580デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/30(木) 16:25:32.68ID:dOgLqtqk0 コンパイラ最適化の時点で追うのが難しい
ましてや投機実行とくると…
ましてや投機実行とくると…
581デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/30(木) 16:27:29.00ID:dOgLqtqk0 思い出した continue や break は優遇されている印象
582デフォルトの名無しさん
2025/01/31(金) 01:34:44.08ID:5fFn3R6V0 Pythonだって安全じゃないしな
俺この間自作したPythonプログラム動かしたら数秒後PCが落ちた
XPとかWindows7とかじゃないぜ、Windows11の最新が突如電源が切れたんだよプツンて
まじでビビった
ちなみに原因は日本語フォントを読み込むコードをカメラキャプチャのループ内(数十から数百ミリ秒ぐらい?)で実行していた
C言語のポインタは危険とか言うけどさ、一番危険なのは俺みたいな馬鹿なコード書く奴の存在だよ
俺この間自作したPythonプログラム動かしたら数秒後PCが落ちた
XPとかWindows7とかじゃないぜ、Windows11の最新が突如電源が切れたんだよプツンて
まじでビビった
ちなみに原因は日本語フォントを読み込むコードをカメラキャプチャのループ内(数十から数百ミリ秒ぐらい?)で実行していた
C言語のポインタは危険とか言うけどさ、一番危険なのは俺みたいな馬鹿なコード書く奴の存在だよ
583デフォルトの名無しさん (ワッチョイ 4e63-W7nG)
2025/01/31(金) 09:59:26.90ID:4ClqIqkw0 君のPCが落ちる程度は許容範囲
584デフォルトの名無しさん (ワッチョイ fa07-cjCd)
2025/01/31(金) 11:00:00.59ID:uHjOTXCx0 考えようによっては、タチの悪いDoSじゃないかw
カメラごときで全体落としてんじゃねえよ > カーネル層
ロジックバグなんだろうけど、こういうのはしかし難しいね
カメラごときで全体落としてんじゃねえよ > カーネル層
ロジックバグなんだろうけど、こういうのはしかし難しいね
585デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/31(金) 11:20:36.48ID:h9+hJoTPp ドライバの秘孔を突いただけだから
586デフォルトの名無しさん (ワッチョイ 4e63-W7nG)
2025/01/31(金) 11:30:08.08ID:4ClqIqkw0 ドライバーに致命的不具合があったとしても
ブルスクになる程度で
電源断まで行くと言うのは考え難い
ブルスクになる程度で
電源断まで行くと言うのは考え難い
587デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/31(金) 11:49:46.06ID:h9+hJoTPp ドライバの秘孔を突いてカメラに搭載のチップが電源ライン直結になったとかじゃね?
588デフォルトの名無しさん
2025/01/31(金) 18:44:56.94ID:5fFn3R6V0 原因はそっち(ドライバ)ではなくスリープなしのループ内でフォントファイルに連続攻撃したことだぜ、たぶん
簡単に書くとこんな感じ
fontpath ='C:\\Windows\\Fonts\\DFJGOTEB.TTC'
while True:
put_ja(point, text)
def put_ja(point, text):
font = ImageFont.truetype(fontpath, 32)
draw.text(point, text, fill=color, font=font)
実際にはwhileじゃなくてafterでループさせてたけど
日本語出力の時、出力のたびにフォントファイル読み込んでたようで結果PCが落ちた
残像攻撃を受けた感じだったのかもしれん、コロ先生の分身みたいなやつ
簡単に書くとこんな感じ
fontpath ='C:\\Windows\\Fonts\\DFJGOTEB.TTC'
while True:
put_ja(point, text)
def put_ja(point, text):
font = ImageFont.truetype(fontpath, 32)
draw.text(point, text, fill=color, font=font)
実際にはwhileじゃなくてafterでループさせてたけど
日本語出力の時、出力のたびにフォントファイル読み込んでたようで結果PCが落ちた
残像攻撃を受けた感じだったのかもしれん、コロ先生の分身みたいなやつ
589デフォルトの名無しさん (ワッチョイ 0e00-BqhG)
2025/01/31(金) 19:36:45.83ID:R7Zj8Mog0 プリエンプティブカーネル使っててスリープなしのループごときでそんなことあり得るのか?
逆にそうなった仕組みが知りたい。
逆にそうなった仕組みが知りたい。
590デフォルトの名無しさん (ワッチョイ 9a79-x7zn)
2025/01/31(金) 19:40:58.83ID:1pwkweKb0 インテルのTurboBoostだかで負荷もブーストされて排熱が間に合わずMBにダメージ与えつつ逝ったんじゃないの
PC買い換えた方がいいよ
PC買い換えた方がいいよ
591デフォルトの名無しさん (ワッチョイ b6fc-jays)
2025/01/31(金) 19:54:38.13ID:R/wyJ37S0 ブルースクリーンもなしにおちるなんてハード不良
592デフォルトの名無しさん
2025/01/31(金) 20:00:56.86ID:5fFn3R6V0 スレチで申し訳ないが、
俺も気にはなってるけどPC痛めつけてまでやる気にはなれない
試したいなら試してくれ、ただしどうなっても責任は負わんぞw
MicrosoftストアのPython Software Foundationってとこの奴
Python 3.13.1 (tags/v3.13.1:0671451, Dec 3 2024, 19:06:28) [MSC v.1942 64 bit (AMD64)] on win32
OpenCVで日本語表示
https://monomonotech.jp/kurage/raspberrypi/opencv_japanese.html
ここのputText_japaneseを参考にした(パスとかwindows用に書き換え)
んで、それを
【簡単】QRコードの作成と読み取り in Python
https://qiita.com/PoodleMaster/items/0afbce4be7e442e75be6
のcv2.putTextと置き換えるように書き換えたんよ
引数のfontはなくしてフォントサイズだけを渡す
ImageFont.truetypeがフォントサイズも引数にしているから、こうすれば動的なフォントサイズ変更にも対応できるな、ヨシ!って思ってね
それ実行したらPC落ちた
それでも数回やって問題なかった記憶はあるんだけどね(ただし数十秒程度の起動時間だった)
ちょっと長めに起動させたままにしたからリソース食いつぶしたのかな?と思ってる
俺も気にはなってるけどPC痛めつけてまでやる気にはなれない
試したいなら試してくれ、ただしどうなっても責任は負わんぞw
MicrosoftストアのPython Software Foundationってとこの奴
Python 3.13.1 (tags/v3.13.1:0671451, Dec 3 2024, 19:06:28) [MSC v.1942 64 bit (AMD64)] on win32
OpenCVで日本語表示
https://monomonotech.jp/kurage/raspberrypi/opencv_japanese.html
ここのputText_japaneseを参考にした(パスとかwindows用に書き換え)
んで、それを
【簡単】QRコードの作成と読み取り in Python
https://qiita.com/PoodleMaster/items/0afbce4be7e442e75be6
のcv2.putTextと置き換えるように書き換えたんよ
引数のfontはなくしてフォントサイズだけを渡す
ImageFont.truetypeがフォントサイズも引数にしているから、こうすれば動的なフォントサイズ変更にも対応できるな、ヨシ!って思ってね
それ実行したらPC落ちた
それでも数回やって問題なかった記憶はあるんだけどね(ただし数十秒程度の起動時間だった)
ちょっと長めに起動させたままにしたからリソース食いつぶしたのかな?と思ってる
593デフォルトの名無しさん (アウアウエー Sa52-FFa5)
2025/02/01(土) 12:06:57.91ID:Dm0gVBeEa 負荷掛け過ぎてコンデンサが爆発したんだろ
594 cha 警備員[Lv.1][新芽] (ワッチョイ 87bc-UTVl)
2025/02/09(日) 11:28:31.00ID:WswbN0Go0 全く関係の無いことですが、ここに書き込まさせてください。
あるサイトの問題集で、巨大な数の足し算を行うのに、整数型使えないから文字型使おうって書いてありました。
どうやったらその発想ができるんですか?
私プログラミング初心者なのですが、、、
あるサイトの問題集で、巨大な数の足し算を行うのに、整数型使えないから文字型使おうって書いてありました。
どうやったらその発想ができるんですか?
私プログラミング初心者なのですが、、、
595デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl)
2025/02/09(日) 11:34:40.48ID:sBzel75s0 頭の出来だろw
597デフォルトの名無しさん (ワッチョイ 7fab-oD/y)
2025/02/09(日) 12:36:10.76ID:G/CYNigQ0 なんで関係ないと思うんだろうか
誰でもプログラミングができるって言っている人がいたので。
条件分岐とかループ処理のやつは解けるやつもあれば、解けないやつがあっても解説見れば次は出来ますが、文字列関係になると頭の中が[?]になるんです。
600デフォルトの名無しさん (ササクッテロ Spa3-Z3xl)
2025/02/09(日) 13:07:51.84ID:ql26y8Y/p 応用力…今の学校教育じゃ養われない能力が大切
応用力ですか、。なんか、数学と同じ感じですね。基礎ができたと思っても応用ができないみたいな。
ちなみに、応用力ってどの様に勉強すれば身につくものなんですか?
ちなみに、応用力ってどの様に勉強すれば身につくものなんですか?
602デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/09(日) 13:46:11.17ID:k5BYzD4Y0 30桁くらいの2つの整数値を筆算で加算するときの手順をイメージして
それをプログラム化してみれば良い
そんなに難しくはないだろう
それをプログラム化してみれば良い
そんなに難しくはないだろう
603デフォルトの名無しさん (ワッチョイ 465c-6Hi7)
2025/02/09(日) 13:46:45.75ID:KfUn2qZi0 >>594
そのサイトクソだよ
そのサイトクソだよ
>>602
筆算のイメージはあるのですが、整数型でやろうとしたらエラーになって、実数型でやろうとしてもエラーになるので、なんでだろーって思って解説ん見てみたら、[文字列型にしましょう]って書いてあったので[?]ってなってしまうのです。
筆算のイメージはあるのですが、整数型でやろうとしたらエラーになって、実数型でやろうとしてもエラーになるので、なんでだろーって思って解説ん見てみたら、[文字列型にしましょう]って書いてあったので[?]ってなってしまうのです。
>>602
筆算のイメージもそのサイトの解説みてから、そうなんだと思ったんですけど、どうも初見だとイメージが沸かないんですよ。
筆算のイメージもそのサイトの解説みてから、そうなんだと思ったんですけど、どうも初見だとイメージが沸かないんですよ。
606デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/09(日) 14:27:08.84ID:k5BYzD4Y0 イメージ湧かないなら、手を動かそう
そこに答えがあるよ
そこに答えがあるよ
608デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 17:03:10.36ID:TclGPY+C0 整数32bitでも64bitでも最大値は決まっている
でも大きい整数を表すのに64bit整数1つだけ使うとは決まっていない
桁溢れをプログラム的に検出して
溢れた分を別の64bit整数に記録すれば大きな整数を扱える
64bit+64bit+....
で整数を表す感じ
でも大きい整数を表すのに64bit整数1つだけ使うとは決まっていない
桁溢れをプログラム的に検出して
溢れた分を別の64bit整数に記録すれば大きな整数を扱える
64bit+64bit+....
で整数を表す感じ
609デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 17:04:41.81ID:TclGPY+C0 文字列って1Byte整数の配列でしょ?無駄が多いよ
8Byte整数の組合せを上で挙げたけど、8Byte整数の配列でも当然できる
8Byte整数の組合せを上で挙げたけど、8Byte整数の配列でも当然できる
610デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl)
2025/02/09(日) 17:14:14.93ID:sBzel75s0 無駄を省くより可読性の方が大切
8bit時代のファミコンじゃ無いんだから
そんなキリキリ詰め込んだってわけわからん事になるだけ
8bit時代のファミコンじゃ無いんだから
そんなキリキリ詰め込んだってわけわからん事になるだけ
611デフォルトの名無しさん (ワッチョイ 465c-6Hi7)
2025/02/09(日) 17:36:57.81ID:KfUn2qZi0612デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl)
2025/02/09(日) 18:12:23.04ID:sBzel75s0 桁上がりを別に判定しなきゃならないんだから扱えるギリギリの桁で計算するのはバカだろw
アセンブラなら桁あふれフラグ見て簡単に処理出来るだろうが、Cだと無理
アセンブラなら桁あふれフラグ見て簡単に処理出来るだろうが、Cだと無理
613デフォルトの名無しさん (ブーイモ MMaa-6Hi7)
2025/02/09(日) 18:46:42.50ID:fEimQ790M614デフォルトの名無しさん (ブーイモ MMaa-6Hi7)
2025/02/09(日) 18:57:40.14ID:fEimQ790M615デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 19:00:51.12ID:TclGPY+C0 整数値それぞれ (左右どっちだっけ)シフト1bitやって(1/2の値)足したのが最大値の半分超えたら桁溢れ
上位桁に溢れるだけ加算
Cでもできるに決まっているじゃん これだけだよ
上位桁に溢れるだけ加算
Cでもできるに決まっているじゃん これだけだよ
616デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 19:09:00.04ID:TclGPY+C0 文字列って溢れの分が1-9まであって大変そう
バイナリなら1bitだけでしょ
バイナリなら1bitだけでしょ
>>615
それってシフト演算の話ですか?(違ってたらごめんなさい。)
私、シフト演算は苦手なんですよね。
ただシフトするだけなら参考書とサイトみたらできますけど、ノールックでさらに四則演算になるとできないんですよ。
それってシフト演算の話ですか?(違ってたらごめんなさい。)
私、シフト演算は苦手なんですよね。
ただシフトするだけなら参考書とサイトみたらできますけど、ノールックでさらに四則演算になるとできないんですよ。
618デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 19:34:02.21ID:TclGPY+C0 考えたらシフトは無駄だった
64bit整数のうち63bit整数で考えて最上位ビットを溢れ判定に使えばよいだけ
あんまり書くと宿題の手伝いになってそう
64bit整数のうち63bit整数で考えて最上位ビットを溢れ判定に使えばよいだけ
あんまり書くと宿題の手伝いになってそう
619デフォルトの名無しさん (ブーイモ MMaa-6Hi7)
2025/02/09(日) 19:44:20.36ID:fEimQ790M620はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/09(日) 19:51:22.43ID:vUYqd53r0 二進化十進はたとえば表示の処理なんかは簡単になるので無駄なわけではない。
621デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl)
2025/02/09(日) 20:03:35.95ID:sBzel75s0 いまどき文字も16bit時代にケチケチすんなw
623デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/10(月) 07:27:24.30ID:ZpC+jsE10 あと実数でやったと出たけど要注意
double verybignum;
verybignum += 1.0;
で1.0は桁を合わせると0に消えて足されない場合がある
double verybignum;
verybignum += 1.0;
で1.0は桁を合わせると0に消えて足されない場合がある
624デフォルトの名無しさん (アウアウエー Sa82-R6kM)
2025/02/10(月) 11:48:59.09ID:Z13/KCo3a 吊りならともかく本物の初心者なら文字コードを知らないってこともあるだろうな
多倍長整数をバイト列(1桁0-255)じゃなくて文字列(1桁0-9)で表すのは無駄が多いがアルゴリズムは同じはず
それでもピンと来ないなら先に文字コードについて理解するべき
多倍長整数をバイト列(1桁0-255)じゃなくて文字列(1桁0-9)で表すのは無駄が多いがアルゴリズムは同じはず
それでもピンと来ないなら先に文字コードについて理解するべき
IntelのアセンブラならBCDを扱う命令があったと思うけど、Cでやるなら文字に代入する時点で &= 0x0F、計算して出力する前に |= 0x30(でいいんだっけ?)かなー
626はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF)
2025/02/10(月) 13:19:14.90ID:cWC6BpGk0 やや強引だがアドレスとして同じでも比較すると等しくないという結果になる例を作ってみた。
https://wandbox.org/permlink/hpAkiEeiZclvQJsn
概念的にはポインタはアドレスというのでも間違いではないけど実際には言語のルールを把握していないと引っかかることもある。
ホスト規制でしばらく書き込めなかったので遅レスですまぬ。
https://wandbox.org/permlink/hpAkiEeiZclvQJsn
概念的にはポインタはアドレスというのでも間違いではないけど実際には言語のルールを把握していないと引っかかることもある。
ホスト規制でしばらく書き込めなかったので遅レスですまぬ。
627デフォルトの名無しさん (ワッチョイ 6a56-WFrT)
2025/02/10(月) 16:46:22.93ID:xKid5uSQ0 よく分からないがこうなる理由が分からないという意味の質問かな?
まあそうだとして、C言語では異なるオブジェクトへのポインタを比較出来ないってルールがある
それが行われているので、未定義の動作といってこのプログラムではコンパイラがどんな事をしてもいいことになってる
そのどんな事の中にはnot equalを表示するという動作も含まれているので、たまたまそうなったんでしょう
初心者がよくやるFAQレベルのミスなので、ポインタとオブジェクトを理解する意味でその辺も読んでみればもっと上達するでしょう
他にもヘンな部分があるので色々他の人のコードとかも読むといいね
まあそうだとして、C言語では異なるオブジェクトへのポインタを比較出来ないってルールがある
それが行われているので、未定義の動作といってこのプログラムではコンパイラがどんな事をしてもいいことになってる
そのどんな事の中にはnot equalを表示するという動作も含まれているので、たまたまそうなったんでしょう
初心者がよくやるFAQレベルのミスなので、ポインタとオブジェクトを理解する意味でその辺も読んでみればもっと上達するでしょう
他にもヘンな部分があるので色々他の人のコードとかも読むといいね
628はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/10(月) 17:14:00.11ID:cWC6BpGk0 >>627
ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。
ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。
629はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/10(月) 17:18:14.15ID:cWC6BpGk0 >>623
文意がよくわからんが初期化されてないから不定値になってるんじゃない?
文意がよくわからんが初期化されてないから不定値になってるんじゃない?
630デフォルトの名無しさん
2025/02/10(月) 17:44:23.62ID:1DQgWNxh0 これはどういうことなんだ?
foo、barの順にスタックに積まれる
bazにはfooの次の(intの境界の)番地(barと同じ)が入り、quzにはbarの番地が入る
bazとquzには同じ番地(値)が入っている
までは分かる
bazもquzもint型を指している
が、bazとquzの内容を比較するとことなる
なんじゃこりゃ〜
酔ってなくても分からなそう
foo、barの順にスタックに積まれる
bazにはfooの次の(intの境界の)番地(barと同じ)が入り、quzにはbarの番地が入る
bazとquzには同じ番地(値)が入っている
までは分かる
bazもquzもint型を指している
が、bazとquzの内容を比較するとことなる
なんじゃこりゃ〜
酔ってなくても分からなそう
633デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/11(火) 08:30:33.47ID:YWsMUNTvp 型変換すればOK
634はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/11(火) 11:05:12.56ID:0+q77CUl0 >>632
強調しておくけど未定義は何が起こってもよい。
この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。)
低レイヤから入った人は未定義をナメてることが結構あるとは思う。
どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。
強調しておくけど未定義は何が起こってもよい。
この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。)
低レイヤから入った人は未定義をナメてることが結構あるとは思う。
どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。
635デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/11(火) 11:22:08.87ID:kmJe274sp Cなんてポインターは全部void*だろ
636デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/11(火) 11:37:41.91ID:7Jzkf7ZG0 ご無体な
>>626 は僕のgccのパージョンだと
-O2 ありだと "not equal"
最適化なしだと "equal"
-S つけて .s をみると、-O2 ありのときポインタの比較すらせず単純に
puts("not equal");
とするコードを出力していた
"equal" のリテラルすらコードにはない
降参
-O2 ありだと "not equal"
最適化なしだと "equal"
-S つけて .s をみると、-O2 ありのときポインタの比較すらせず単純に
puts("not equal");
とするコードを出力していた
"equal" のリテラルすらコードにはない
降参
638デフォルトの名無しさん (ワッチョイ 4606-6Hi7)
2025/02/11(火) 13:33:00.20ID:jMpjlVqA0 strict aliasingのルールがなぜあるか理解してたらある程度予想つくだろ
639デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/11(火) 14:32:56.35ID:VhWouMxY0 そもそも 8Byteや4Byte変数のポインタが例えば奇数の数値が許されるのかとか
640デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/11(火) 14:40:28.60ID:7Jzkf7ZG0 文字列を指すポインタなら、一文字ずつインクリメント出来ないと困るよね
641デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/11(火) 14:52:06.30ID:+ybAiMfGp >>639
CPUによる
CPUによる
642デフォルトの名無しさん (ワッチョイ 4606-6Hi7)
2025/02/11(火) 15:43:23.98ID:jMpjlVqA0 >>639
それどこへのレス?
それどこへのレス?
643デフォルトの名無しさん (ラクッペペ MMc6-2Ktg)
2025/02/11(火) 16:44:48.97ID:ZUCQJ4rmM >>640
いつ困るんだ?
いつ困るんだ?
>>627は
最適化されると出力されるコードを推測することは無理だ、ということね
最適化されると出力されるコードを推測することは無理だ、ということね
645デフォルトの名無しさん (ワッチョイ 4606-6Hi7)
2025/02/11(火) 17:19:32.60ID:jMpjlVqA0 無理はいいすぎ
やったことないやつがしったかすんな
やったことないやつがしったかすんな
646デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/11(火) 17:20:33.85ID:0gFNLz1yp ARM系はほんと無理
647デフォルトの名無しさん (ワッチョイ 5302-aFRq)
2025/02/11(火) 18:37:22.58ID:2gjYX+K80 貴方みたいな人はほんと無理
とか言われたら傷ついちゃう
とか言われたら傷ついちゃう
648デフォルトの名無しさん (ワッチョイ 7f1b-hc6T)
2025/02/11(火) 21:27:22.00ID:JzAdQ4dR0 とりあえず読むべし
旧石器時代のポインタをご利用の皆様へ 〜provenance入門〜
https://qiita.com/__pandaman64__/items/1788a90ae5be79cc908b
旧石器時代のポインタをご利用の皆様へ 〜provenance入門〜
https://qiita.com/__pandaman64__/items/1788a90ae5be79cc908b
>>648
thx!
thx!
650デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/11(火) 21:58:43.75ID:VhWouMxY0 こんなの分割コンパイルしたら分からないし ライブラリならなおさら
実行時にどのオブジェクト由来なんて情報持っておけるのか?
int func(int *ip, int *iq)
{
if (ip == iq) {
} else {
}
}
実行時にどのオブジェクト由来なんて情報持っておけるのか?
int func(int *ip, int *iq)
{
if (ip == iq) {
} else {
}
}
651デフォルトの名無しさん (ワッチョイ 46a9-6Hi7)
2025/02/11(火) 22:39:07.83ID:jMpjlVqA0 コンパイル時に決まってんじゃん
652デフォルトの名無しさん (スップ Sd4a-26Jk)
2025/02/11(火) 23:02:33.92ID:DgpMDse2d このコテハンの人いつもこんなだよね
まともに出来るのが規格のコピペみたいな事だけで、それ以外だとすぐとんちんかんな事言い出して突っ込まれてる
まともに出来るのが規格のコピペみたいな事だけで、それ以外だとすぐとんちんかんな事言い出して突っ込まれてる
653はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/11(火) 23:17:19.29ID:0+q77CUl0 >>650
わかる範囲でやるってだけ。
わからないところは保守的なコードを生成する。
ただ、今は LTO があるのでわかる範囲がだいぶん広い。
わからないからこそプログラマは未定義なことをしないと仮定した最適化をする (未定義を踏んでたらむちゃくちゃになる) という場合もある。
わかる範囲でやるってだけ。
わからないところは保守的なコードを生成する。
ただ、今は LTO があるのでわかる範囲がだいぶん広い。
わからないからこそプログラマは未定義なことをしないと仮定した最適化をする (未定義を踏んでたらむちゃくちゃになる) という場合もある。
654デフォルトの名無しさん (ワッチョイ d301-XAIF)
2025/02/12(水) 10:25:19.84ID:WVzDbo940 >>648
ポインタpとqの値が同じにならないんだけど…
ポインタpとqの値が同じにならないんだけど…
655デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/12(水) 10:28:46.36ID:p1VJlK94p Cに余計なもん付けたらいにしえのLinux由来のコードが通らなくなるだろ
656デフォルトの名無しさん (ワッチョイ 6a4d-WFrT)
2025/02/12(水) 11:20:54.68ID:OojhOsKe0657627 (ワッチョイ 6a4d-WFrT)
2025/02/12(水) 11:21:58.36ID:OojhOsKe0 >>631
未定義の動作なので2行目から7行目のような事が起きるかどうかは分からない
仮に未定義の動作がなかったとしても行目を自明のように仮定することは出来ない
アーキテクチャが色々ある中そういう処理系もあればそうでない処理系もあるしCでは何も規定してない
スタックの仕組みがないものもあればポインタをそもそも数値や番地で扱わないアーキテクチャもある
後段も同様
未定義の動作なので2行目から7行目のような事が起きるかどうかは分からない
仮に未定義の動作がなかったとしても行目を自明のように仮定することは出来ない
アーキテクチャが色々ある中そういう処理系もあればそうでない処理系もあるしCでは何も規定してない
スタックの仕組みがないものもあればポインタをそもそも数値や番地で扱わないアーキテクチャもある
後段も同様
658627 (ワッチョイ 6a4d-WFrT)
2025/02/12(水) 11:22:39.59ID:OojhOsKe0659はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF)
2025/02/12(水) 11:47:09.26ID:cXwd7RB80 >>658
言語仕様上で未定義動作とされている状況が実際の機械の上でどう動作するか (その動作は想像できない) という文脈でヤバさを伝えるためになるべく想像外な結果を生む実例を出そうとしているので最適化は関係ある。
言語仕様上で未定義動作とされている状況が実際の機械の上でどう動作するか (その動作は想像できない) という文脈でヤバさを伝えるためになるべく想像外な結果を生む実例を出そうとしているので最適化は関係ある。
660デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/12(水) 11:50:24.83ID:XyTZkBHop 最適化しないと無駄なコードや無意味なコードも忠実に出力されるからなぁ
661デフォルトの名無しさん (ワッチョイ 4618-6Hi7)
2025/02/12(水) 12:49:03.57ID:J/UI6pYQ0662デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/12(水) 13:26:30.21ID:7GgOweZ60 えーと未定義や環境依存を使ったりとかは
Cおよびコンピュータの理解が不十分な
質の劣るプログラマが存在するからでしょうに
そういう人達に重要プログラムを書かせる責任問題でもある
Cおよびコンピュータの理解が不十分な
質の劣るプログラマが存在するからでしょうに
そういう人達に重要プログラムを書かせる責任問題でもある
663デフォルトの名無しさん (ワッチョイ 5302-aFRq)
2025/02/12(水) 15:09:37.68ID:+Pz/j8Me0 相手に過大に説明を要求して、自分は分かろうとしない者は嫌われちゃうよ
664デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/12(水) 15:17:35.67ID:iId2MJ1V0 gccのフォーラムで質問出してみたら?
参考にできる回答が得られるかも知れないよ
参考にできる回答が得られるかも知れないよ
665デフォルトの名無しさん (ワッチョイ d301-XAIF)
2025/02/12(水) 15:52:05.07ID:WVzDbo940 >ポインタにはprovenanceという,どのオブジェクト由来かの情報が含まれています
↑まずこれがおかしい
↑まずこれがおかしい
666デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/12(水) 16:26:28.23ID:I956D6cKp ランタイムじゃなくてコンパイル時の静的なルールだろうね
667デフォルトの名無しさん (ワッチョイ ea07-XAIF)
2025/02/12(水) 17:12:16.79ID:1bCkYFVx0 投資家はRustを信頼するって言ってるんだから、Rustとおんなじようにすればいいだけ
俺はC/C++派なので、どんどんRustの実績をぶんどってくるべきって思ってる
俺はC/C++派なので、どんどんRustの実績をぶんどってくるべきって思ってる
668はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/12(水) 17:47:13.48ID:cXwd7RB80 移植性が求められることばかりでもないし、最適化などのオプションも頻繁に取ったりつけたりしないし、思い通りに動かなければアセンブルリストみたりするけど、コンパイラが出力するコードが予想通りかなんて観点はないし、実践的ではないけど、人を小馬鹿にしたりしなければ勉強になって面白い話なのに
671デフォルトの名無しさん (ワッチョイ 8655-u07z)
2025/02/15(土) 13:31:47.16ID:vKfoke/00 Arduino (ESP32)で文字列変換をしたいです。
tの文字列をtm structに変換したいんですが,タイムゾーンのオフセット部分の+9:00の扱いが分かりません。
%Zはタイムゾーンのオフセットを分を指定する場合で、%zだとUTCなどタイムゾーン名を指定する場合に使うみたいでした。
どうやるんでしょうか?
tps://pastebin.com/Jcyj8BG5
tの文字列をtm structに変換したいんですが,タイムゾーンのオフセット部分の+9:00の扱いが分かりません。
%Zはタイムゾーンのオフセットを分を指定する場合で、%zだとUTCなどタイムゾーン名を指定する場合に使うみたいでした。
どうやるんでしょうか?
tps://pastebin.com/Jcyj8BG5
672はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF)
2025/02/15(土) 15:04:44.95ID:ewglApEf0 strptime で %z や %Z でタイムゾーンを扱えるのは glibc の拡張 (他で真似している場合もあるかもしれんけど) なんだけど、 Arduino の C ライブラリは glibc ベースなの?
そうじゃないなら各ライブラリのドキュメント (またはソースコード) を読まないとわからないし、そもそもそんな機能はないのかもしれない。
そうじゃないなら各ライブラリのドキュメント (またはソースコード) を読まないとわからないし、そもそもそんな機能はないのかもしれない。
673デフォルトの名無しさん (ワッチョイ 5357-u07z)
2025/02/15(土) 16:19:42.94ID:BNBq5D0N0674デフォルトの名無しさん (ブーイモ MM3b-6Hi7)
2025/02/15(土) 16:25:20.46ID:Q9F/iLI2M やり方思いついたならやれ
675はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF)
2025/02/15(土) 16:39:17.28ID:ewglApEf0 >>673
どうやら Arduino は newlib ベースの模様。
newlib の strptime はタイムゾーンをサポートしてない。
どうにかしてタイムゾーンを扱いたい場合にどうやって実装するかは個々の事情によると思うのでなんとも言えない。
実績のある実装をどこかから持ってきたほうが良いんじゃないかと個人的には思う。
https://www.google.com/search?q=strptime+implementation+c
パースするだけならたいして複雑なものではないので自分で書いてみてもいいかな。
ちなみにタイムゾーンを略称で扱うのは面倒な事情が絡む。
タイムゾーンを標準時からの差の時間で表すときはその時点での差があれば十分なので簡単なんだけど、略称で表すときはサマータイムの情報もいる。
たとえばニューヨークのタイムゾーン (EST) は普段は -05:00 だけどサマータイム中は -04:00 になる。
単に EST=-05:00 というわけではない。
そんでもってこのへんの扱いが面倒なのは変わることは割とよくあるということ。
サマータイムの期間が変わったりずらす時間が変わったり、あるいはゾーンが増えたり減ったりするのは政治的な判断なので情報を定期的に更新する前提じゃないときちんと運用できない。
パソコンの OS だと適当なタイミングで更新する仕組みがあるのが普通だけど組み込みシステムだとそうもいかないこともある。
どうやら Arduino は newlib ベースの模様。
newlib の strptime はタイムゾーンをサポートしてない。
どうにかしてタイムゾーンを扱いたい場合にどうやって実装するかは個々の事情によると思うのでなんとも言えない。
実績のある実装をどこかから持ってきたほうが良いんじゃないかと個人的には思う。
https://www.google.com/search?q=strptime+implementation+c
パースするだけならたいして複雑なものではないので自分で書いてみてもいいかな。
ちなみにタイムゾーンを略称で扱うのは面倒な事情が絡む。
タイムゾーンを標準時からの差の時間で表すときはその時点での差があれば十分なので簡単なんだけど、略称で表すときはサマータイムの情報もいる。
たとえばニューヨークのタイムゾーン (EST) は普段は -05:00 だけどサマータイム中は -04:00 になる。
単に EST=-05:00 というわけではない。
そんでもってこのへんの扱いが面倒なのは変わることは割とよくあるということ。
サマータイムの期間が変わったりずらす時間が変わったり、あるいはゾーンが増えたり減ったりするのは政治的な判断なので情報を定期的に更新する前提じゃないときちんと運用できない。
パソコンの OS だと適当なタイミングで更新する仕組みがあるのが普通だけど組み込みシステムだとそうもいかないこともある。
676はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/15(土) 21:12:02.85ID:ewglApEf0 基本的なことを書き忘れてた。
strptime は C の言語仕様には無い関数で、 POSIX (UNIX 系 OS の統一仕様) にある。
POSIX は最低限の共通部分だけをまとめたもので実装には雑多な拡張を入れる前提なので各実装によってサポート内容が違う。
POSIX 準拠ではない環境で部分的に POSIX を真似てるだけ (POSIX の最低限の要求も満たしてない) ということもある。
strptime は C の言語仕様には無い関数で、 POSIX (UNIX 系 OS の統一仕様) にある。
POSIX は最低限の共通部分だけをまとめたもので実装には雑多な拡張を入れる前提なので各実装によってサポート内容が違う。
POSIX 準拠ではない環境で部分的に POSIX を真似てるだけ (POSIX の最低限の要求も満たしてない) ということもある。
677デフォルトの名無しさん (アウアウエー Sa13-9cJ9)
2025/02/16(日) 12:03:53.19ID:rAQQ2/+ca 最初からtmstructをUTCで取得した方が楽ジャマイカ
678デフォルトの名無しさん (ワッチョイ 232c-1nj7)
2025/02/17(月) 01:18:04.49ID:mzGEyEzq0 有効な同型ポインタの比較において、同一オブジェクト/配列由来でない場合、
== の結果は 0
(未定義動作ではない)
C99(N1256) Annex J.2 Undefined behavior
— Pointers that do not point to the same aggregate or union (nor just beyond the same
array object) are compared using relational operators (6.5.8).
ここに Equality operators の記述がない。
6.5.8 Relational operators
6.5.9 Equality operators
でも同様の内容となっている。また、
N3231 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3231.pdf
2024/03/21 Kleynhans, TS 6010 A Provenance-aware Memory Object Model for C, Revision Draft
N3005
2022/06/16 Gustedt, A Provenance-aware Memory Object Model for C, draft TS 6010, version June 2022
では、provenance と abstract address という用語が導入されてスッキリとした文面になっている。
== の結果は 0
(未定義動作ではない)
C99(N1256) Annex J.2 Undefined behavior
— Pointers that do not point to the same aggregate or union (nor just beyond the same
array object) are compared using relational operators (6.5.8).
ここに Equality operators の記述がない。
6.5.8 Relational operators
6.5.9 Equality operators
でも同様の内容となっている。また、
N3231 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3231.pdf
2024/03/21 Kleynhans, TS 6010 A Provenance-aware Memory Object Model for C, Revision Draft
N3005
2022/06/16 Gustedt, A Provenance-aware Memory Object Model for C, draft TS 6010, version June 2022
では、provenance と abstract address という用語が導入されてスッキリとした文面になっている。
679はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-7Htj)
2025/02/17(月) 10:52:55.67ID:tIRsmIw80 C99 をあらためて読み返してみたら確かにそうだ……。
・ ふたつのポインタが等しいと判断される条件が書いてあって「その場合に限り」等しいとする
・ 各演算子は指定された関係が真の場合は1を,偽の場合は0を返す
・ 未定義と書いてある (またはそれと等価な言い回し) か動作の明示的な定義がない場合は全て未定義
等しい条件を満たさないなら 0 が返されることを保証していることになるので未定義ではないことになる。
でもまあ現実的に考えたらおかしいし、欠陥報告が出てたりしない?
・ ふたつのポインタが等しいと判断される条件が書いてあって「その場合に限り」等しいとする
・ 各演算子は指定された関係が真の場合は1を,偽の場合は0を返す
・ 未定義と書いてある (またはそれと等価な言い回し) か動作の明示的な定義がない場合は全て未定義
等しい条件を満たさないなら 0 が返されることを保証していることになるので未定義ではないことになる。
でもまあ現実的に考えたらおかしいし、欠陥報告が出てたりしない?
680デフォルトの名無しさん (ワッチョイ 1501-7Htj)
2025/02/17(月) 19:30:42.26ID:iQTBmgHC0 >>648のサンプルプログラムで同じことが起きることってある?
681デフォルトの名無しさん (ワッチョイ 23ad-MHHu)
2025/02/22(土) 07:05:24.68ID:nEyoRU5r0682デフォルトの名無しさん (ワッチョイ fde8-ItHp)
2025/02/22(土) 12:11:54.96ID:DWcN/KDk0 余計なことを
683デフォルトの名無しさん (ワッチョイ 23ad-MHHu)
2025/02/22(土) 14:47:10.43ID:nEyoRU5r0 最適化オプションの有無で違いが出る状態はできれば止めて欲しかったな。やるとしても別オプションでやって欲しかった。
684デフォルトの名無しさん (ワッチョイ 1bab-2o2c)
2025/02/22(土) 16:41:59.90ID:Z2hFLtuL0 その壁越えられないやつ多いよね
仕事でも最適化すると動かなくなるからってオフでリリースしてた雑魚エンジニアいたわ
仕事でも最適化すると動かなくなるからってオフでリリースしてた雑魚エンジニアいたわ
685デフォルトの名無しさん (ワッチョイ cba1-Nstt)
2025/02/22(土) 17:57:58.33ID:HOxFgRC/0 コンパイラのバグって事じゃないのか?
686はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-FOV+)
2025/02/23(日) 20:21:42.14ID:5K9CwmG10 >>683
-0 はいくつかの具体的な最適化オプションを束ねたものだよ。
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-O
このうちのどれが効いてるのかは知らんけど。
-0 はいくつかの具体的な最適化オプションを束ねたものだよ。
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-O
このうちのどれが効いてるのかは知らんけど。
687デフォルトの名無しさん (ワッチョイ b691-M1fQ)
2025/02/23(日) 21:01:43.23ID:VuC2otmU0 >>684
最適化オフでのリリースは一つの有力な選択だと思います。
最適化オフでのリリースは一つの有力な選択だと思います。
688デフォルトの名無しさん (ワッチョイ 094f-/70v)
2025/02/23(日) 21:45:10.07ID:K8mfivgh0 最適化に副作用あるのは常識
689デフォルトの名無しさん (ブーイモ MM99-A0+M)
2025/02/23(日) 21:54:21.08ID:FQnOu1obM690デフォルトの名無しさん (ワッチョイ 0d01-Ah42)
2025/02/24(月) 01:00:54.17ID:IorN2uWP0 自己紹介かな
691デフォルトの名無しさん (ワッチョイ aeb7-/OIl)
2025/02/24(月) 17:12:08.95ID:qLUUxQg70 gccなら-O0でも実施される最適化はあるので本気で最適化オフにしたいなら-O0で有効になる項目を-fno-に個別に指定する必要がありそこそこ面倒
692デフォルトの名無しさん (ワッチョイ aebd-A0+M)
2025/02/24(月) 17:18:13.77ID:SlW5Uo1a0 最適化オフとか言ってる人は、UBを踏んでしまってるから最適化で動作が変わるってことわかってんのか?
693デフォルトの名無しさん (ワッチョイ aeb7-/OIl)
2025/02/24(月) 17:22:09.48ID:qLUUxQg70 まあコンパイラの最適化バグである可能性もないわけではないがな
694デフォルトの名無しさん (ワッチョイ b691-M1fQ)
2025/02/24(月) 20:28:13.00ID:V/nislFh0 組み込み分野だと最適化によりデバッグがしづらくなることが多い。
gccで -O2 なし -Wall ありでコンパイルすると strict aliasing の警告がでないけど、
-O2 -Wall ありだと strict aliasing の警告が出るケースに当たったのだけど、
strict aliasing って安全に最適化するためのアレなのですかね(最適化しないときは strict aliasing には無頓着)
-O2 -Wall ありだと strict aliasing の警告が出るケースに当たったのだけど、
strict aliasing って安全に最適化するためのアレなのですかね(最適化しないときは strict aliasing には無頓着)
696デフォルトの名無しさん (ワッチョイ d5a2-eBms)
2025/02/24(月) 22:52:40.44ID:ifUFLigf0 この人たちホントgccが大好きだよね
697デフォルトの名無しさん (ワッチョイ 76a1-x4eQ)
2025/02/24(月) 23:27:53.22ID:LsxokMxo0 gccはいろんな環境で動かせるので便利ではある
698デフォルトの名無しさん (ワッチョイ ae76-A0+M)
2025/02/25(火) 01:13:30.67ID:t+eQGWY+0 >>694
それ組み込み関係ないから
それ組み込み関係ないから
699はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-FOV+)
2025/02/25(火) 08:31:05.22ID:6jOr+W/20700デフォルトの名無しさん (ワッチョイ b6e5-M1fQ)
2025/02/25(火) 09:04:02.65ID:ODzMt1Nm0 >>698
そうだった
そうだった
>>699
最適化しないときは strict aliasing が不要なものなんですかね(最適化のための strict aliasing なんですかね)というつもりで書いたのだけど、分かりにくくてすまんね
最適化しないときは strict aliasing が不要なものなんですかね(最適化のための strict aliasing なんですかね)というつもりで書いたのだけど、分かりにくくてすまんね
702はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Ah42)
2025/02/26(水) 10:14:24.43ID:6jOr+W/20 >>701
少なくとも GCC や Clang では strict aliasing rules は最適化のためのものという認識で正しいよ。
-fstrict-aliasing (やこれらを含む -O2 以上の最適化) が有効になっているときに限りエイリアスベースの最適化をするし、そのときだけ strict aliasing rules が守られていることを要求する。
少なくとも GCC や Clang では strict aliasing rules は最適化のためのものという認識で正しいよ。
-fstrict-aliasing (やこれらを含む -O2 以上の最適化) が有効になっているときに限りエイリアスベースの最適化をするし、そのときだけ strict aliasing rules が守られていることを要求する。
703デフォルトの名無しさん (ワッチョイ 317b-/OIl)
2025/02/26(水) 11:04:16.19ID:x+jOZkKw0 strict aliasing rulesを守らないと未定義動作となるのはC言語の決まりなので特定の処理系で問題ないから守らなくて良いという考えは馬鹿のすること
704デフォルトの名無しさん (ワッチョイ ae51-A0+M)
2025/02/26(水) 11:20:14.18ID:t+eQGWY+0 というかstrict aliasing rulesをわかってるやつがあえて守らないって考えにくいでしょ
このスレを見てわかる通りわかってないやつらが大半
このスレを見てわかる通りわかってないやつらが大半
705はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Ah42)
2025/02/26(水) 11:38:18.47ID:6jOr+W/20 ビットパターンを別の型で読み替える可能性があるなら最初から union で書いておいたほうが人にとっても読みやすいしな。
(C++ では union でも common initial sequence の読み替えしか許しておらず、 C より制約が厳しいので注意。)
(C++ では union でも common initial sequence の読み替えしか許しておらず、 C より制約が厳しいので注意。)
706はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-FOV+)
2025/02/26(水) 15:23:36.19ID:6jOr+W/20 >>703
未定義は「規格としては何も要求しない」なので処理系が何らかの追加保証をすることを禁じてない。
未定義は「規格としては何も要求しない」なので処理系が何らかの追加保証をすることを禁じてない。
707デフォルトの名無しさん (ワッチョイ 317b-/OIl)
2025/02/26(水) 15:45:51.57ID:x+jOZkKw0 特定の処理系と心中するつもりでstrict aliasing rulesを守らない奴がいたらすごい馬鹿
709デフォルトの名無しさん (ワッチョイ b691-M1fQ)
2025/02/27(木) 00:09:51.30ID:oCSgSskf0 >>707
移植しないなら別にいいんじゃないの
移植しないなら別にいいんじゃないの
710デフォルトの名無しさん (ワッチョイ 0a20-/OIl)
2025/02/27(木) 08:29:36.37ID:Uw13P3Kf0 >>709
将来の更新の可能性も考慮しないわけね
将来の更新の可能性も考慮しないわけね
711デフォルトの名無しさん (ワッチョイ 0d01-Ah42)
2025/02/27(木) 09:04:57.33ID:smeEQtfp0 だから将来も移植しないんだろ
712デフォルトの名無しさん (ワッチョイ 0a20-/OIl)
2025/02/27(木) 09:23:08.30ID:Uw13P3Kf0 移植と更新は違うぞw
713デフォルトの名無しさん (ブーイモ MMbd-A0+M)
2025/02/27(木) 10:21:51.11ID:6jIPAcTSM そのどうでもいい仮定話いつまでやんの?
714デフォルトの名無しさん (ワッチョイ 6a33-X0JC)
2025/02/27(木) 22:25:43.54ID:rdt/oSxr0 【帰化朝鮮人を論破】
日本は帰化朝鮮系の家系の人間によって隣国の大韓民国と北朝鮮に侵略行為を受けている
彼らがやっていることは「差別」を盾にした日本人を対象にした迫害であり「民族浄化」である
国際法でもこのような行為は決して許されていない
しかし何となく加害者が日本人で、差別されているの朝鮮系と言う意識を刷り込まれて彼らに遠慮してないか?
事実は逆である、加害者は彼らの方で迫害されているのは日本人である、まずこの意識を共有しよう
なぜそうなっているのか? 新聞、出版社、司法、テレビ局、会社の起業家、大学教授などが帰化系の人間で徒党を組み
日本人を差別、排除してまるで日本人であるかのように振舞っているからである
テレビに映り世論を形成している人間が日本人の振りをして韓国、北朝鮮に有利になるように論調を組み、
日本を支配し、日本人が朝鮮人に隷属することを強要している
これが侵略行為以外のなんなのか? なぜ日本人が日本で差別の対象にならなければいけないのか?
帰化系が起業し外部の朝鮮系と通じ合い会社を成功させる、または帰化系が既存の会社組織でトップに居座り
管理職を帰化人系のみで固め、日本人は閑職に追いやられ、パワハラで辞職に追い込まれ
その会社の技術を朝鮮半島に流出させ、日本企業が競争力を失っていく
芸能人、テレビ局員、スポーツ選手(五輪代表、野球、サッカー)、報道関係者は帰化系で独占されている
もはやテレビに映る人間はほとんど日本人ではないと考えろ
では何をするべきか?
もはや野党はほぼ全員、もはや自民党も過半数以上は帰化朝鮮人系の家系の人間が国会議員を占有しつつある
まず「政治家に立候補する時、外国の家系の人間か否かを公表する」を提出して過半の賛成を取って立法化しよう
国際的にもごく一般的で、アメリカでも何系かはすべて明らかにされている
そうなると帰化人の家系の人間に支配されたメディアは差別だと糾弾し始め帰化人たちが暴動やら起こすだろう、
日本は荒廃の一途を辿る、内戦状態に近いものになる
だがそれは当然のこと、国内で隣国の人間による侵略行為、民族浄化行為を受けているのだから
時間はあまりない、やつらが過半数を確保してからでは遅い、韓国北朝鮮に占領されてしまう
日本人よ、まず声を上げるのだ
日本は帰化朝鮮系の家系の人間によって隣国の大韓民国と北朝鮮に侵略行為を受けている
彼らがやっていることは「差別」を盾にした日本人を対象にした迫害であり「民族浄化」である
国際法でもこのような行為は決して許されていない
しかし何となく加害者が日本人で、差別されているの朝鮮系と言う意識を刷り込まれて彼らに遠慮してないか?
事実は逆である、加害者は彼らの方で迫害されているのは日本人である、まずこの意識を共有しよう
なぜそうなっているのか? 新聞、出版社、司法、テレビ局、会社の起業家、大学教授などが帰化系の人間で徒党を組み
日本人を差別、排除してまるで日本人であるかのように振舞っているからである
テレビに映り世論を形成している人間が日本人の振りをして韓国、北朝鮮に有利になるように論調を組み、
日本を支配し、日本人が朝鮮人に隷属することを強要している
これが侵略行為以外のなんなのか? なぜ日本人が日本で差別の対象にならなければいけないのか?
帰化系が起業し外部の朝鮮系と通じ合い会社を成功させる、または帰化系が既存の会社組織でトップに居座り
管理職を帰化人系のみで固め、日本人は閑職に追いやられ、パワハラで辞職に追い込まれ
その会社の技術を朝鮮半島に流出させ、日本企業が競争力を失っていく
芸能人、テレビ局員、スポーツ選手(五輪代表、野球、サッカー)、報道関係者は帰化系で独占されている
もはやテレビに映る人間はほとんど日本人ではないと考えろ
では何をするべきか?
もはや野党はほぼ全員、もはや自民党も過半数以上は帰化朝鮮人系の家系の人間が国会議員を占有しつつある
まず「政治家に立候補する時、外国の家系の人間か否かを公表する」を提出して過半の賛成を取って立法化しよう
国際的にもごく一般的で、アメリカでも何系かはすべて明らかにされている
そうなると帰化人の家系の人間に支配されたメディアは差別だと糾弾し始め帰化人たちが暴動やら起こすだろう、
日本は荒廃の一途を辿る、内戦状態に近いものになる
だがそれは当然のこと、国内で隣国の人間による侵略行為、民族浄化行為を受けているのだから
時間はあまりない、やつらが過半数を確保してからでは遅い、韓国北朝鮮に占領されてしまう
日本人よ、まず声を上げるのだ
715デフォルトの名無しさん (ワッチョイ 76a1-x4eQ)
2025/02/27(木) 22:56:45.28ID:c6/rsZNB0 まず統一を潰さないと
716デフォルトの名無しさん (ワッチョイ 6d07-Ah42)
2025/02/28(金) 00:14:09.12ID:FWjziINm0717はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Ah42)
2025/02/28(金) 10:32:16.41ID:aDguz5rE0 >>705
念のために確認してたら union のメンバを他の型の違うメンバで読み替えて良い規則は JIS (JISX3010:2003) には書いてないっぽい。
欠陥報告で後から修正したから JIS を出した時点では原文にも書いてなかったんだな。
https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_283.htm
念のために確認してたら union のメンバを他の型の違うメンバで読み替えて良い規則は JIS (JISX3010:2003) には書いてないっぽい。
欠陥報告で後から修正したから JIS を出した時点では原文にも書いてなかったんだな。
https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_283.htm
718はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c132-ctMQ)
2025/03/11(火) 17:38:04.47ID:GvJGmymX0 C の公式サイトが登場!
https://www.c-language.org/
https://www.c-language.org/
719デフォルトの名無しさん (ワッチョイ dd01-ctMQ)
2025/03/12(水) 20:15:01.01ID:echC0lcV0 AIのおかげでCが主流になるかもな
720デフォルトの名無しさん (ササクッテロル Sp85-ZS5M)
2025/03/12(水) 21:03:53.54ID:pJ5qTyUbp >>719
それは無い
それは無い
721デフォルトの名無しさん (ワッチョイ 794b-XET2)
2025/03/12(水) 21:59:36.42ID:WyQEi83H0 AIコーディングが進化した結果直接機械語で出力できるようになったけど人間が読めないのは困るから最低限人間が読めて速度も出るCで出すのが主流になるみたいな妄想
722デフォルトの名無しさん (ササクッテロル Sp85-ZS5M)
2025/03/12(水) 22:07:09.85ID:/p3tzJNRp AIは何も指定しなきゃjavaやpythonやC#のコードを吐き出すよ
723デフォルトの名無しさん (ワッチョイ 1101-6xWR)
2025/03/18(火) 10:34:05.62ID:mIJI9ibF0 cはむずい定期
724デフォルトの名無しさん (ワッチョイ a1b3-Cuhd)
2025/03/19(水) 20:09:43.41ID:WDKEEomI0 文法的にはポインタ周りが(少し)難しいだけ
個人的にはpythonの方が難しく感じるな
個人的にはpythonの方が難しく感じるな
725はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 215e-a7BF)
2025/03/19(水) 20:44:03.52ID:SWZJHd7L0 C が未定義をエラーとして補足せずに黙って変になることがあるのは入門書などをまともに読まずにいろいろ弄って学ぶタイプの人には向いてないな。
ちゃんとした入門書をちゃんと読むならそんなに難しいわけではない。
しかし難しくないことでもしょうもないミスをするのが人というものだという現実もあって、特に規模が大きくなると C はしんどい。
難易度とかいうのとは別の話として、理解していても間違う。
ちゃんとした入門書をちゃんと読むならそんなに難しいわけではない。
しかし難しくないことでもしょうもないミスをするのが人というものだという現実もあって、特に規模が大きくなると C はしんどい。
難易度とかいうのとは別の話として、理解していても間違う。
726デフォルトの名無しさん (ワッチョイ 13ad-avMV)
2025/03/20(木) 04:57:02.69ID:07u24rkx0 まあしかしこの頃のコンパイラは警告やエラーを沢山出してくれて分り易いよ。
昔のはチェックが緩くて出なかったからな。
その状態から gcc で printf() のフォーマットと引数のチェックが出来ると知った時は衝撃を受けた。
昔のはチェックが緩くて出なかったからな。
その状態から gcc で printf() のフォーマットと引数のチェックが出来ると知った時は衝撃を受けた。
727デフォルトの名無しさん (ワッチョイ 418c-jD59)
2025/03/20(木) 17:01:49.87ID:iinwNT6F0 >>726
それな、オプションさえちゃんと付ければ昔でもできてたよ
それな、オプションさえちゃんと付ければ昔でもできてたよ
728はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2170-a7BF)
2025/03/20(木) 17:31:14.06ID:PqZkwPwR0 GCC では遅くても 2.95.3 には attribute で文字列が書式であることを指定できて型チェックする機能はあった模様。(2001年頃)
https://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_4.html#SEC84
ただな、このスレにいるようなおじさんの言う「昔」は 1980 年頃の話だったりするんよ。
MS-DOS 用とか CP/M 用とかのコンパイラの話なんよ。
https://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_4.html#SEC84
ただな、このスレにいるようなおじさんの言う「昔」は 1980 年頃の話だったりするんよ。
MS-DOS 用とか CP/M 用とかのコンパイラの話なんよ。
729デフォルトの名無しさん (ワッチョイ 71ff-yHWN)
2025/03/20(木) 17:39:11.70ID:Enps6Akh0 その年代の人はおじさんじゃなくておじいさんでは
730デフォルトの名無しさん (ワッチョイ 418c-jD59)
2025/03/20(木) 17:45:05.08ID:iinwNT6F0731デフォルトの名無しさん (ワッチョイ c95f-H5Hv)
2025/03/20(木) 18:23:15.20ID:0dSk8Oyx0 メインフレームにダム端末繋げてた時代じゃよ
732デフォルトの名無しさん (スフッ Sd33-4EpX)
2025/03/20(木) 23:54:14.30ID:t3XlSG3jd gcc7.1から突然エラーメッセージが親切になったのはあるな
ちょうどclang+llvmが話題になった時期でそれに対抗したらしい
ちょうどclang+llvmが話題になった時期でそれに対抗したらしい
733デフォルトの名無しさん (ワッチョイ 13ad-avMV)
2025/03/21(金) 07:44:18.11ID:6cMMiEqo0734デフォルトの名無しさん (ワッチョイ 13ad-avMV)
2025/03/21(金) 07:45:09.98ID:6cMMiEqo0 >>728
そうそう。80年代。
そうそう。80年代。
735デフォルトの名無しさん (ワッチョイ 9bec-91cd)
2025/03/21(金) 08:19:02.26ID:kfFumR870 真理子版が便利すぎた。
736デフォルトの名無しさん (ワッチョイ 992a-15T+)
2025/03/22(土) 13:52:41.80ID:A90b+kK90 他人にも使わせるツールに環境変数「真里子」はキモすぎてビビった
737デフォルトの名無しさん (アウアウエー Sa23-D2PX)
2025/03/22(土) 14:25:25.39ID:U6/Lg1xxa >>728
scanf, sscanf で float, double に %f, %lf のところを %f, %f にしてバグるのがありがち
scanf, sscanf で float, double に %f, %lf のところを %f, %f にしてバグるのがありがち
738627 (ワッチョイ 5377-avMV)
2025/03/22(土) 15:31:32.91ID:7ZrFn0ve0 scanfなんて使ったことねーや
ありがちってほど使ってるんか
ありがちってほど使ってるんか
739デフォルトの名無しさん (ワッチョイ eba1-hjYJ)
2025/03/22(土) 15:40:39.16ID:8J5Eq6PC0 scanfに道に落ちているを食べさせてはいけません
740デフォルトの名無しさん (ワッチョイ 492a-jhJX)
2025/03/28(金) 08:23:03.00ID:+OZuQWBg0 この警告、環境によっては出ないの?
$ cc ld.c -Wall
ld.c: 関数 ‘main’ 内:
ld.c:6:19: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 2 引数の型は ‘off_t’ {aka ‘long int’} です [-Wformat=]
6 | return printf("%d", offset);
| ~^ ~~~~~~
| | |
| int off_t {aka long int}
| %ld
$ cat -n ld.c
1 #include <stdio.h>
2 #include <sys/param.h>
3
4 int main() {
5 off_t offset = 1;
6 return printf("%d", offset);
7 }
8
$ cc ld.c -Wall
ld.c: 関数 ‘main’ 内:
ld.c:6:19: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 2 引数の型は ‘off_t’ {aka ‘long int’} です [-Wformat=]
6 | return printf("%d", offset);
| ~^ ~~~~~~
| | |
| int off_t {aka long int}
| %ld
$ cat -n ld.c
1 #include <stdio.h>
2 #include <sys/param.h>
3
4 int main() {
5 off_t offset = 1;
6 return printf("%d", offset);
7 }
8
741デフォルトの名無しさん (ブーイモ MM26-xG3a)
2025/03/28(金) 08:29:47.68ID:v2Oxq7uoM おれの作ったCコンパイラはそんな警告出さないけど何か文句ある?
742740 (ワッチョイ 492a-jhJX)
2025/03/28(金) 09:29:48.60ID:+OZuQWBg0 >>741
あー、なるほど。↓よ。
$ cc --version
cc (GCC) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
あー、なるほど。↓よ。
$ cc --version
cc (GCC) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
743はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU)
2025/03/28(金) 11:25:13.48ID:gM96YdDw0 >>740
出さないコンパイラはあるし、その場合に警告を出すコンパイラであっても printf 類を特別扱いしてなんとかしてるので、可変長引数一般では型が合わないときに検出されない。
出さないコンパイラはあるし、その場合に警告を出すコンパイラであっても printf 類を特別扱いしてなんとかしてるので、可変長引数一般では型が合わないときに検出されない。
744740 (ワッチョイ 492a-aKLX)
2025/03/28(金) 13:15:49.58ID:+OZuQWBg0 なるぽろ。%ld に変更せず、放っておくか。ありがとう。
ちなみに、逆に、%ld だと警告する場合も有り得るのだろうか。例えば off_t が非 long の機種があるとか。
ちなみに、逆に、%ld だと警告する場合も有り得るのだろうか。例えば off_t が非 long の機種があるとか。
745はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU)
2025/03/28(金) 13:32:37.75ID:gM96YdDw0 x86-64 なら System V ABI ではどうせ 64 ビットレジスタで受け渡されるからそこんところでは問題にならないのだが、最適化したときにどうなるかまるで予想がつかない。 放置してよいとは言えない。
いったん intmax_t にキャストするのが正当な方法だと考えられている。
https://www.jpcert.or.jp/sc-rules/c-int15-c.html
いったん intmax_t にキャストするのが正当な方法だと考えられている。
https://www.jpcert.or.jp/sc-rules/c-int15-c.html
746デフォルトの名無しさん (ワッチョイ 6eef-29WZ)
2025/03/28(金) 15:39:13.17ID:Gm0qUC0n0 struct X* x;で自動変数を定義した場合
スタック上のどこかにstruct Xの領域が確保されたりしますか?
スタック上のどこかにstruct Xの領域が確保されたりしますか?
747デフォルトの名無しさん (ブーイモ MM26-xG3a)
2025/03/28(金) 15:47:02.39ID:v2Oxq7uoM されない
748740 (ワッチョイ 492a-mzfN)
2025/03/28(金) 17:27:47.76ID:+OZuQWBg0749デフォルトの名無しさん (ササクッテロラ Spf1-7PGi)
2025/03/28(金) 19:09:11.37ID:Yj8GIx0sp なんだよjって、何の略だ?
750はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU)
2025/03/28(金) 22:16:42.65ID:gM96YdDw0 >>749
なんらかの単語の略 (頭文字) というわけではないらしいよ。
> j is sort of like "i" for integer
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n833.htm
なんらかの単語の略 (頭文字) というわけではないらしいよ。
> j is sort of like "i" for integer
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n833.htm
μ→uみたいなものか
大文字の I はもう使われてふのかな?
大文字の I はもう使われてふのかな?
752デフォルトの名無しさん (アウアウウー Saa5-WcQO)
2025/03/29(土) 16:07:35.02ID:M3jsTRd4a long long や unsigned long long の出力に %lld や %llu って昔は使えてた気がするが
最近はだめなんかな
%I64 とか %U64 みたいなのになってるん
最近はだめなんかな
%I64 とか %U64 みたいなのになってるん
753はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU)
2025/03/29(土) 16:54:36.19ID:HRez4USp0754デフォルトの名無しさん (ワッチョイ 2e2a-aKLX)
2025/03/29(土) 17:30:28.12ID:bd7PveSA0755デフォルトの名無しさん (ワッチョイ a92a-K+vz)
2025/04/08(火) 18:05:53.82ID:f9O97Hv70 sudo で実行すると execl が動作しないように見える。なぜ?
$ cat -n e.c
1 #include <stdio.h>
2 #include <unistd.h>
3
4 int main() {
5 pid_t pid;
6 if ((pid = fork()) > 0) return 0;
7 else if (pid < 0) return 1;
8 execl("/bin/bash", "/bin/bash", "-c", "echo $$ $PPID >> /tmp/log", NULL);
9 _exit(2);
10 }
$ gcc -g e.c
$ ./a.out
$ cat /tmp/log
10593 1566
$ sudo ./a.out
$ cat /tmp/log
10593 1566
$
$ cat -n e.c
1 #include <stdio.h>
2 #include <unistd.h>
3
4 int main() {
5 pid_t pid;
6 if ((pid = fork()) > 0) return 0;
7 else if (pid < 0) return 1;
8 execl("/bin/bash", "/bin/bash", "-c", "echo $$ $PPID >> /tmp/log", NULL);
9 _exit(2);
10 }
$ gcc -g e.c
$ ./a.out
$ cat /tmp/log
10593 1566
$ sudo ./a.out
$ cat /tmp/log
10593 1566
$
756627 (ワッチョイ 22ca-VGeA)
2025/04/08(火) 19:31:31.59ID:HmugccjD0 まずコピーするなら手を入れるな手を入れると他も全部疑わなきゃいけなくなる
それからsudo -E ./a.outとsudo strace ./a.outを試せ
それからsudo -E ./a.outとsudo strace ./a.outを試せ
757デフォルトの名無しさん (ワッチョイ 798a-GhsC)
2025/04/08(火) 19:45:35.63ID:dAM9KaxA0 縦の数字はなに?
普通にエラーになるだろそれ
普通にエラーになるだろそれ
758デフォルトの名無しさん (ワッチョイ a9b3-K+vz)
2025/04/08(火) 20:08:58.79ID:0fraKCca0 catの引数に-n指定してるからだろ
759デフォルトの名無しさん (ワッチョイ 4dc4-xzp7)
2025/04/08(火) 20:57:19.94ID:brzdTu7q0 手元にあるfedora で試したが、
sudo ./a.out の結果表示は2行になった
多分、正常に処理できたようだ
sudo ./a.out の結果表示は2行になった
多分、正常に処理できたようだ
あ、次のようにしたときです
sudo ./a.out
/tmp/log に追記されませんでした
sudo ./a.out
/tmp/log に追記されませんでした
762755 (ワッチョイ a92a-ZtHn)
2025/04/08(火) 22:49:40.17ID:Rmhs1Vne0 >>759
えー!? と別環境で実行したら、sudo でも execl が動作したように見える。なにこれ。
$ ./a.out
$ cat /tmp/log
13706 1
$ sudo ./a.out
$ cat /tmp/log
13706 1
13721 1
$
取り敢えず、うちの Ubuntu の「おま環」問題のようでした。お騒がせしました。
ただ、今回のは bash の $PPID が init (1) になるという新たな謎が...
えー!? と別環境で実行したら、sudo でも execl が動作したように見える。なにこれ。
$ ./a.out
$ cat /tmp/log
13706 1
$ sudo ./a.out
$ cat /tmp/log
13706 1
13721 1
$
取り敢えず、うちの Ubuntu の「おま環」問題のようでした。お騒がせしました。
ただ、今回のは bash の $PPID が init (1) になるという新たな謎が...
763はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-xzp7)
2025/04/09(水) 00:22:33.67ID:06ntJanv0 親プロセスが先に死んだら子は init の養子になる。
だけどこの場合だとどちらが先に死ぬかはプロセスのスケジューリング次第で状況によるってことなんじゃないのかな。
Linux の事情はよく知らんけど。
だけどこの場合だとどちらが先に死ぬかはプロセスのスケジューリング次第で状況によるってことなんじゃないのかな。
Linux の事情はよく知らんけど。
764デフォルトの名無しさん (ワッチョイ 4df4-bRAX)
2025/04/09(水) 00:23:29.81ID:Z/QH/Jgt0 Linux 板で聞いた方が回答ありそうな気がする。
765デフォルトの名無しさん (ワッチョイ ae7e-GhsC)
2025/04/09(水) 15:00:16.84ID:cB69i6Vg0 const unsigned char t100_day[3807] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
String tenki_i = "01";
char*const unsigned char t100_day[3807] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
String tenki_i = "01";
char* y_icon; // FIXME 型が分からない
if (tenki_i == "01") y_icon = "t100_day";
else if (tenki_i == "01_n") y_icon = "t100_night";
else if (tenki_i == "08") y_icon = "t200_day";
else if (tenki_i == "08_n") y_icon = "t200_night";
else y_icon = "t999_day";
sprite.drawPng((std::uint8_t*)y_icon, sizeof(y_icon), 0, 25);
t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。
y_iconはどうやって指定したらいいでしょうか?
const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
String tenki_i = "01";
char*const unsigned char t100_day[3807] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
String tenki_i = "01";
char* y_icon; // FIXME 型が分からない
if (tenki_i == "01") y_icon = "t100_day";
else if (tenki_i == "01_n") y_icon = "t100_night";
else if (tenki_i == "08") y_icon = "t200_day";
else if (tenki_i == "08_n") y_icon = "t200_night";
else y_icon = "t999_day";
sprite.drawPng((std::uint8_t*)y_icon, sizeof(y_icon), 0, 25);
t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。
y_iconはどうやって指定したらいいでしょうか?
766デフォルトの名無しさん (ワッチョイ ae7e-GhsC)
2025/04/09(水) 15:01:47.32ID:cB69i6Vg0 >>765
コピペ間違えました
正しくは以下です
char*const unsigned char t100_day[3807] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
String tenki_i = "01";
char* y_icon; // FIXME 型が分からない
if (tenki_i == "01") y_icon = "t100_day";
else if (tenki_i == "01_n") y_icon = "t100_night";
else if (tenki_i == "08") y_icon = "t200_day";
else if (tenki_i == "08_n") y_icon = "t200_night";
else y_icon = "t999_day";
sprite.drawPng((std::uint8_t*)y_icon, sizeof(y_icon), 0, 25);
t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。
y_iconはどうやって指定したらいいでしょうか?
コピペ間違えました
正しくは以下です
char*const unsigned char t100_day[3807] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, }
String tenki_i = "01";
char* y_icon; // FIXME 型が分からない
if (tenki_i == "01") y_icon = "t100_day";
else if (tenki_i == "01_n") y_icon = "t100_night";
else if (tenki_i == "08") y_icon = "t200_day";
else if (tenki_i == "08_n") y_icon = "t200_night";
else y_icon = "t999_day";
sprite.drawPng((std::uint8_t*)y_icon, sizeof(y_icon), 0, 25);
t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。
y_iconはどうやって指定したらいいでしょうか?
767デフォルトの名無しさん (スッップ Sd22-yI6P)
2025/04/09(水) 15:16:14.76ID:qDwL9bg0d768デフォルトの名無しさん (ワッチョイ 79f9-GhsC)
2025/04/09(水) 15:24:40.77ID:Hnk7Q6m60 すみません、書き直しました
https://ideone.com/CSy0Nb
t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。
y_iconはどうやって指定したらいいでしょうか?
https://ideone.com/CSy0Nb
t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。
y_iconはどうやって指定したらいいでしょうか?
769デフォルトの名無しさん (ワッチョイ 06a6-9hLw)
2025/04/09(水) 15:27:10.13ID:lI8vd/RJ0770はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-xzp7)
2025/04/09(水) 18:01:06.77ID:06ntJanv0771はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-xzp7)
2025/04/09(水) 18:30:26.27ID:06ntJanv0772755 (ワッチョイ 6e2a-ZtHn)
2025/04/09(水) 19:53:07.12ID:dFJfWRF+0 >>769
「お騒がせしました。」と言ったので、勝手ながら質問を終えた気がしていた。見てくれて有り難う。
>>755,762 については、Ubuntu においても sudo で execl は動作していた。
動作しないように見えたのは、Ubuntu 特有のファイル権限設定があり、root といえどもファイルにアペンドできないせいだった。Qiita にあったサマリが解りやすい。
https://qiita.com/skyflare2001/items/1c1934b1d2f405228334#2025118-追記
> Ubuntu の /tmp のユーザファイルに root で追記できない
全く C言語に関係なかった。ごめんちゃい。
「お騒がせしました。」と言ったので、勝手ながら質問を終えた気がしていた。見てくれて有り難う。
>>755,762 については、Ubuntu においても sudo で execl は動作していた。
動作しないように見えたのは、Ubuntu 特有のファイル権限設定があり、root といえどもファイルにアペンドできないせいだった。Qiita にあったサマリが解りやすい。
https://qiita.com/skyflare2001/items/1c1934b1d2f405228334#2025118-追記
> Ubuntu の /tmp のユーザファイルに root で追記できない
全く C言語に関係なかった。ごめんちゃい。
773デフォルトの名無しさん (アウアウウー Sa21-NXaD)
2025/04/20(日) 14:12:51.27ID:RiHDJnuQa stdbool.h 真面目に使ってる人いる?あるいは使ってない方がおかしい?
774はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-C6fW)
2025/04/20(日) 16:06:51.19ID:srj6a33k0 原則としては論理型が必要であれば stdbool.h (内で定義される bool) を使うべきだと思う。
論理型が C99 で導入されるより前の古いプログラム中で bool という名前を使っている場合に配慮して論理型の名前を _Bool にした上でその別名の bool を stdbool.h 内で定義するという変な構成になっている。
(もし bool という名前を独自の定義で使っている場合は単に stdbool.h を使わないという選択が可能。)
このような状況から、互換性の問題がなければ論理型は bool という名前にしたかったし、論理型の値は true, false と書きたいという意図が感じられる。
自分が書くプログラム内で名前が衝突するような問題がないのなら意図に乗っかっておくのが無難そうに思われる。
C23 からは bool, true, false がキーワードとして直接にサポートされるようになって stdbool.h は意味を失いただ存在するだけになった。
こういう変更をする以上はこれが C のあるべき新しい姿と考えられてるってことなんだろう。
stdbool.h を使うことで (古い規格でも) 新しい姿を先取りできるわけ。
ただ、 C23 の変更はちょっとだけ互換性を損なう部分があるから注意を要する。
stdboo.h で定義される旧来の true, false は 1, 0 に展開されるマクロで、要するに型で言えば int だった。
C23 からの true, false は bool 型のリテラルという立場を持つ。
これが問題になるケースはそれほどないとは思うけど……。
論理型が C99 で導入されるより前の古いプログラム中で bool という名前を使っている場合に配慮して論理型の名前を _Bool にした上でその別名の bool を stdbool.h 内で定義するという変な構成になっている。
(もし bool という名前を独自の定義で使っている場合は単に stdbool.h を使わないという選択が可能。)
このような状況から、互換性の問題がなければ論理型は bool という名前にしたかったし、論理型の値は true, false と書きたいという意図が感じられる。
自分が書くプログラム内で名前が衝突するような問題がないのなら意図に乗っかっておくのが無難そうに思われる。
C23 からは bool, true, false がキーワードとして直接にサポートされるようになって stdbool.h は意味を失いただ存在するだけになった。
こういう変更をする以上はこれが C のあるべき新しい姿と考えられてるってことなんだろう。
stdbool.h を使うことで (古い規格でも) 新しい姿を先取りできるわけ。
ただ、 C23 の変更はちょっとだけ互換性を損なう部分があるから注意を要する。
stdboo.h で定義される旧来の true, false は 1, 0 に展開されるマクロで、要するに型で言えば int だった。
C23 からの true, false は bool 型のリテラルという立場を持つ。
これが問題になるケースはそれほどないとは思うけど……。
775デフォルトの名無しさん (ワッチョイ a95f-0ulL)
2025/04/20(日) 16:30:31.97ID:VYLrteqj0 bool型だと関数成功はtrueで1
int型だと関数成功で0とか普通
混ぜるな危険
int型だと関数成功で0とか普通
混ぜるな危険
776デフォルトの名無しさん (ワッチョイ 6db1-h0BB)
2025/04/20(日) 17:33:04.38ID:SQJ2+pRN0 戻り値が負数ならエラーってやつが(ry
777デフォルトの名無しさん (ワッチョイ 5e93-M5IX)
2025/04/20(日) 18:02:02.88ID:AC61QJPP0 関数の結果がboolのやつはエラー原因丸めて何が問題かわからないからクソだよな
778デフォルトの名無しさん (ワッチョイ 8a7a-I3kk)
2025/04/20(日) 18:06:56.21ID:sZ1mcHs70 >>773
なんでstdbool.hがあるのかよく分からないってこと?
なんでstdbool.hがあるのかよく分からないってこと?
779はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-imSP)
2025/04/20(日) 19:55:37.89ID:srj6a33k0780デフォルトの名無しさん (ワッチョイ f9ee-0INX)
2025/04/20(日) 21:08:15.13ID:0ZeTNaMX0 #define false 1==0
#define true !false
不真面目なんでいつもこれでやってました
#define true !false
不真面目なんでいつもこれでやってました
781デフォルトの名無しさん (ワッチョイ 6db1-h0BB)
2025/04/20(日) 21:22:34.91ID:SQJ2+pRN0 >777
エラー理由が必要なやつは引数に返り値用ポインタ要求する設計になってんじゃね?
エラー理由が必要なやつは引数に返り値用ポインタ要求する設計になってんじゃね?
782デフォルトの名無しさん (アウアウウー Sa21-NXaD)
2025/04/21(月) 02:34:30.39ID:DqUDvQMka >>777
関数の結果の型がboolのやつが-1を返す例もあってな
関数の結果の型がboolのやつが-1を返す例もあってな
783はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 65d3-imSP)
2025/04/21(月) 05:17:15.86ID:jNnWMUsR0784デフォルトの名無しさん (ワッチョイ 6639-nw4i)
2025/04/21(月) 05:35:14.60ID:gJLXVah/0 そういや、boolの実値は処理系依存とはるか昔に習ったようなキモス
785デフォルトの名無しさん (スッップ Sd0a-Rq/v)
2025/04/21(月) 05:47:00.09ID:wZXY8H1ed >>783
FAQを読め
FAQを読め
786はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 65d3-imSP)
2025/04/21(月) 05:54:01.88ID:jNnWMUsR0787デフォルトの名無しさん (ササクッテロリ Spbd-0ulL)
2025/04/21(月) 09:56:56.17ID:i498vk5cp #define TRUE (0==0)
#define FALSE !TRUE
この書き方はまだ世の中がBASICでソフト組んでた頃に見たわ
たぶんそれ以前のどこか別の言語からの輸入なんだとは思うが
かっこいいから好んで使ってる
#define FALSE !TRUE
この書き方はまだ世の中がBASICでソフト組んでた頃に見たわ
たぶんそれ以前のどこか別の言語からの輸入なんだとは思うが
かっこいいから好んで使ってる
788デフォルトの名無しさん (ワッチョイ 6582-0ulL)
2025/04/21(月) 09:58:55.59ID:JjvQDxsX0 まあ、まだtrueが0以外って仕様だった頃に、より処理系に沿った正確な値が欲しかったんだ
789はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-C6fW)
2025/04/21(月) 11:43:45.70ID:++xqwTI40 >>788
PDP-11 時代の C のリファレンスマニュアルを見つけることが出来た。
https://web.archive.org/web/20250121035636/https://www.bell-labs.com/usr/dmr/www/cman.ps
1975 年頃のもので、このときすでに比較演算子や等価演算子は 1 か 0 を返すことになっている。
たぶん最初からそうだったと思う。
C の基礎になった B の時点で既にこのような仕様なので。
ただ、全ての処理系が完璧に同じ仕様に沿っていたわけでもないだろうし、当時の事情の中で有用なテクニックだった可能性はあるかもしれない。
PDP-11 時代の C のリファレンスマニュアルを見つけることが出来た。
https://web.archive.org/web/20250121035636/https://www.bell-labs.com/usr/dmr/www/cman.ps
1975 年頃のもので、このときすでに比較演算子や等価演算子は 1 か 0 を返すことになっている。
たぶん最初からそうだったと思う。
C の基礎になった B の時点で既にこのような仕様なので。
ただ、全ての処理系が完璧に同じ仕様に沿っていたわけでもないだろうし、当時の事情の中で有用なテクニックだった可能性はあるかもしれない。
790デフォルトの名無しさん (ワッチョイ 9e02-4o74)
2025/04/21(月) 12:00:52.53ID:QKqUxhO90 いまでも「0は偽」という仕様しか謳われてないように見えるがどうだろう
むしろ「偽は0」という仕様が消えているようにも思えるが、どうだったっけ
むしろ「偽は0」という仕様が消えているようにも思えるが、どうだったっけ
791はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-imSP)
2025/04/21(月) 12:43:19.49ID:++xqwTI40 >>790
_Bool は整数型 (標準符号無し整数型) に分類されている。
整数型は他の整数型に変換したときに変換後の型で表せる範囲であるなら同じ値になるルールなので _Bool 型の 0 は 0 だよ。
_Bool は整数型 (標準符号無し整数型) に分類されている。
整数型は他の整数型に変換したときに変換後の型で表せる範囲であるなら同じ値になるルールなので _Bool 型の 0 は 0 だよ。
792デフォルトの名無しさん (ワッチョイ f9ac-0INX)
2025/04/21(月) 12:51:37.31ID:NLKNLeTR0 関数の戻り値だと、
0は正常終了、非0は異常終了
というのが多かったと思う
0は正常終了、非0は異常終了
というのが多かったと思う
論理型のある言語でも
If b = True Then
なんて書かれるとモゾモゾしてしまう
If b = True Then
なんて書かれるとモゾモゾしてしまう
794デフォルトの名無しさん (ワッチョイ 6610-VXNn)
2025/04/21(月) 13:36:06.07ID:0RekbFS70 false=0,true=1に決めたとしても、いにしえのboolがint型な影響で行儀の悪い関数から2とか-999999999を返せてしまって
1以外のtrueで意図しない分岐になる恐れがあるから、ifの条件は0か非0かで判断しましょうというバッドノウハウ的なルールになったようだ
1以外のtrueで意図しない分岐になる恐れがあるから、ifの条件は0か非0かで判断しましょうというバッドノウハウ的なルールになったようだ
795デフォルトの名無しさん (ワッチョイ 6610-VXNn)
2025/04/21(月) 13:51:07.27ID:0RekbFS70 BOOLの定義にさらに混乱に拍車をかけたのがWindowsAPIのGetMessage()で、戻り値の型をBOOLとしておきながら
実際には0、0以外、-1を返すというBOOLの概念が揺らぐような凶悪な仕様でif文に対し疑心暗鬼になったプログラマーが発生した
https://learn.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-getmessage
実際には0、0以外、-1を返すというBOOLの概念が揺らぐような凶悪な仕様でif文に対し疑心暗鬼になったプログラマーが発生した
https://learn.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-getmessage
796デフォルトの名無しさん (ワッチョイ 971f-3+vo)
2025/04/28(月) 20:12:17.56ID:LzrB3b/O0 初心者です
vcのCL.EXEにパスを通したいのですがどれに通せばいいかわかりません。
86フォルダと64フォルダにそれぞれさらにフォルダが二つあって合計で4つCL。EXEが4っつあります。
86と64は32ビットと64ビットの違いかと思うのですが、64のフォルダにも二つあるのでわかりません
vcのCL.EXEにパスを通したいのですがどれに通せばいいかわかりません。
86フォルダと64フォルダにそれぞれさらにフォルダが二つあって合計で4つCL。EXEが4っつあります。
86と64は32ビットと64ビットの違いかと思うのですが、64のフォルダにも二つあるのでわかりません
797デフォルトの名無しさん (ワッチョイ 971f-3+vo)
2025/04/28(月) 20:13:33.98ID:LzrB3b/O0798はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b732-jewZ)
2025/04/28(月) 20:19:59.93ID:clGXfLYj0 >>796
vcvarsall.bat にパラメータを渡して実行するか各アーキテクチャ向けバッチファイルを実行することで必要な環境変数の設定がされる仕組みになっている。
https://learn.microsoft.com/ja-jp/cpp/build/building-on-the-command-line?view=msvc-170
これらのバッチファイルを経由せずに直接環境を設定するのはやめたほうが良い。
バッチファイルの具体的な内容は各環境によって (インストール時の条件などによってかな?) 違うので他環境でインストールしたバッチファイルを持ってくるなと注意書きがある。
vcvarsall.bat にパラメータを渡して実行するか各アーキテクチャ向けバッチファイルを実行することで必要な環境変数の設定がされる仕組みになっている。
https://learn.microsoft.com/ja-jp/cpp/build/building-on-the-command-line?view=msvc-170
これらのバッチファイルを経由せずに直接環境を設定するのはやめたほうが良い。
バッチファイルの具体的な内容は各環境によって (インストール時の条件などによってかな?) 違うので他環境でインストールしたバッチファイルを持ってくるなと注意書きがある。
799デフォルトの名無しさん (ワッチョイ 971f-3+vo)
2025/04/28(月) 20:39:54.03ID:LzrB3b/O0800はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b732-Dk0z)
2025/04/28(月) 20:54:09.97ID:clGXfLYj0 >>799
私自身は今は使ってないからあまり把握してないのだけれど、普通にインストールしたらそのバッチファイルがスタートアップメニューに登録されなかったっけ?
私自身は今は使ってないからあまり把握してないのだけれど、普通にインストールしたらそのバッチファイルがスタートアップメニューに登録されなかったっけ?
801デフォルトの名無しさん (ワッチョイ 9ff5-ogCD)
2025/04/28(月) 21:29:48.61ID:es1rmYMQ0802デフォルトの名無しさん (ワッチョイ ff8a-VpId)
2025/04/28(月) 21:32:36.04ID:PCWkr5M/0 自分でPATHを通してみろ。っていう実習だとしたら。
たとえば、Hostx64の中のx86は、x64上でclを実行して、出てくるバイナリはx86用ってこと
「そうやって覚える」のもアリだが、vcvarsall を使いこなすこともぜひ覚えよう
たとえば、Hostx64の中のx86は、x64上でclを実行して、出てくるバイナリはx86用ってこと
「そうやって覚える」のもアリだが、vcvarsall を使いこなすこともぜひ覚えよう
803デフォルトの名無しさん (ワッチョイ 5701-8SS3)
2025/04/28(月) 21:45:04.99ID:x+drcUbt0 パスだけ通しても環境変数設定しないとincludeファイルが見つからないとか色々言われそう
804デフォルトの名無しさん (ワッチョイ 97f6-3+vo)
2025/04/28(月) 22:03:09.10ID:ALNkeUhz0 cl.exeの質問したものです
あらためてインストールしたらスタートメニューにコマンドプロンプトがでてきました。
以前使っていたやつと同じのなのでcl.exeが実行できます。
みなさん親切にありがとうございました!!
あらためてインストールしたらスタートメニューにコマンドプロンプトがでてきました。
以前使っていたやつと同じのなのでcl.exeが実行できます。
みなさん親切にありがとうございました!!
805デフォルトの名無しさん (スフッ Sdbf-6bHF)
2025/04/29(火) 05:05:37.13ID:YS1K5N/ud >>804 Windows環境だと俺はまだ、command prompt for developerを使わないとcl.exeを実行できない。すごいなぁ
806デフォルトの名無しさん (ワッチョイ ff2a-DyZQ)
2025/04/29(火) 09:10:59.69ID:zaEbcMdv0 Windows は難し過ぎ。
807デフォルトの名無しさん (アウアウウー Sa1b-Dl8r)
2025/04/29(火) 12:55:09.96ID:TmvDscRda Nim入れたら勝手にcl実行出来るようになってた気がする
808デフォルトの名無しさん (JP 0H4f-KaeE)
2025/04/30(水) 19:36:25.43ID:IchQwRQ5H Windowsでコマンドプロンプトを使ってのC言語って、
VCにしてもMingWとかにしても、
どうにもイマイチよな
なんならDOS時代のBorland Cとかの方が
IDEとの相互運用性があった気もするが
まあ、きょうびプログラミングといえばもうLinux一択ですしねえ
VCにしてもMingWとかにしても、
どうにもイマイチよな
なんならDOS時代のBorland Cとかの方が
IDEとの相互運用性があった気もするが
まあ、きょうびプログラミングといえばもうLinux一択ですしねえ
809デフォルトの名無しさん (ワッチョイ bf07-aswF)
2025/04/30(水) 20:41:49.51ID:SXWYOndw0 ゲーム開発とかWindowsだろ
Linux一択ってお前狭い世界しか知らないだけだぞ
Linux一択ってお前狭い世界しか知らないだけだぞ
810デフォルトの名無しさん (ワッチョイ 97a1-fitb)
2025/04/30(水) 20:47:22.61ID:KuvXDJPY0 狭いWindowsの世界から飛び出そう
811デフォルトの名無しさん (ワッチョイ bfbc-KooC)
2025/05/01(木) 03:44:24.96ID:xFwps2mR0 Windows一択とは言ってないね
その論理思考能力でプログラミングやってて大丈夫?
その論理思考能力でプログラミングやってて大丈夫?
812デフォルトの名無しさん (アウアウウー Sa1b-Dl8r)
2025/05/01(木) 10:14:05.05ID:nTiKCI2Ra813デフォルトの名無しさん (スッップ Sdbf-KaeE)
2025/05/01(木) 13:40:32.60ID:pf/ZHGigd VCって、C言語にとてもよく似た、ともすればほぼ同じ文法でソースを書ける、
何かのフレームワーク用の開発環境だよね
何かのフレームワーク用の開発環境だよね
814デフォルトの名無しさん (アウアウウー Sa1b-Dl8r)
2025/05/01(木) 14:35:25.46ID:nTiKCI2Ra MFCのことか
815デフォルトの名無しさん (ワッチョイ ffcf-5rsl)
2025/05/01(木) 20:39:23.67ID:ZetavPXj0 >>812
nmakeがmakeと別物であってcmakeはWindowsでも一緒だろ
nmakeがmakeと別物であってcmakeはWindowsでも一緒だろ
816デフォルトの名無しさん (ワッチョイ 572f-KZ2f)
2025/05/03(土) 00:28:21.78ID:HHJZofaV0 錆び付いたC言語で今を打ち抜こう
817デフォルトの名無しさん (ワッチョイ 972a-DyZQ)
2025/05/03(土) 07:50:52.82ID:v3weHkV10 >>816
何を使用して?
何を使用して?
818デフォルトの名無しさん (ワッチョイ bf5f-8SS3)
2025/05/03(土) 10:18:34.76ID:sPbW4KAD0 >>817
投げ捨てられたautoconf
投げ捨てられたautoconf
819デフォルトの名無しさん (ワッチョイ b7fa-VDOd)
2025/05/03(土) 16:53:00.85ID:ZpfRANr50820デフォルトの名無しさん (ワッチョイ 9f68-VDOd)
2025/05/03(土) 18:56:34.42ID:Q4RX0Sa/0 スマホとPCの作業を効率化したい--「Copilot Vision」の便利な8つの活用例
2025-05-03 07:00
https://japan.zdnet.com/article/35232549/
1 プログらまーまこれを改造してるので上記以外の状態でも使用できるようにしている
2 すでにプログラムがあるので1〜コードを作成する必要が無い
ボイス・トォ・スカルの本態が一般パソコンにまで来たのでつい買い捨てができるようになった
マネーロンダリング 談合 インサイダー などがはかどるといわれる
2025-05-03 07:00
https://japan.zdnet.com/article/35232549/
1 プログらまーまこれを改造してるので上記以外の状態でも使用できるようにしている
2 すでにプログラムがあるので1〜コードを作成する必要が無い
ボイス・トォ・スカルの本態が一般パソコンにまで来たのでつい買い捨てができるようになった
マネーロンダリング 談合 インサイダー などがはかどるといわれる
821デフォルトの名無しさん (ワッチョイ 97a1-fitb)
2025/05/03(土) 18:58:42.72ID:AGoX3tlE0 タイトルは青春の蹉跌あたりで
822デフォルトの名無しさん (ワッチョイ cf7e-Enlg)
2025/05/05(月) 08:50:37.13ID:3AfvJi9A0 “イリヤ神”がまたやった 動画生成AI「FramePack」が革命的なワケ
2025年05月05日 07時00分更新
https://ascii.jp/elem/000/004/267/4267160/
4月17日に登場した動画生成AIプログラム「FramePack(フレームパック)」が世界的に衝撃を与えています。PCローカル環境で動画AIを動かすには、少なくともビデオメモリー(VRAM)が12GBあるビデオカードを搭載していないと難しいというのが常識でした。ところが、VRAM 6GBでも安定的に動作させられるため、一気に動画AIの裾野を広げそうです。開発したのは、画像生成AI分野で「ControlNet」や、使いやすいツール「Fooocus」などを開発してきたことで知られる、スタンフォード大学に在籍中のIllyasviel(イリヤスフィール、以下イリヤ)さん。既存の方法論にまったく違ったアプローチでブレイクスルーを引き起こす、“イリヤ神”のアプローチに再び注目が集まっています。
中略
AI動画を作ってみたいけれども、スペックが足りないために諦めていたという人が次々に自前の環境で試すようになってきました。既にワンパッケージでインストールできる環境も整えられているため、スタートも簡単です。様々なファイルをダウンロードしてくるため、初期設定は2時間くらいは見ておく必要があるものの、圧倒的にハードルが下がりました。
2025年05月05日 07時00分更新
https://ascii.jp/elem/000/004/267/4267160/
4月17日に登場した動画生成AIプログラム「FramePack(フレームパック)」が世界的に衝撃を与えています。PCローカル環境で動画AIを動かすには、少なくともビデオメモリー(VRAM)が12GBあるビデオカードを搭載していないと難しいというのが常識でした。ところが、VRAM 6GBでも安定的に動作させられるため、一気に動画AIの裾野を広げそうです。開発したのは、画像生成AI分野で「ControlNet」や、使いやすいツール「Fooocus」などを開発してきたことで知られる、スタンフォード大学に在籍中のIllyasviel(イリヤスフィール、以下イリヤ)さん。既存の方法論にまったく違ったアプローチでブレイクスルーを引き起こす、“イリヤ神”のアプローチに再び注目が集まっています。
中略
AI動画を作ってみたいけれども、スペックが足りないために諦めていたという人が次々に自前の環境で試すようになってきました。既にワンパッケージでインストールできる環境も整えられているため、スタートも簡単です。様々なファイルをダウンロードしてくるため、初期設定は2時間くらいは見ておく必要があるものの、圧倒的にハードルが下がりました。
823デフォルトの名無しさん
2025/05/05(月) 16:26:03.24ID:gTSTkGJ70824デフォルトの名無しさん (ワッチョイ cff0-Enlg)
2025/05/07(水) 15:22:05.67ID:Nuqzm3Wk0 下記は全て2025年5月7日の記事
OpenAI、ChatGPTの6つのモデルの違いと適切なプロンプトを解説
https://news.mynavi.jp/techplus/article/20250507-3275757/
Microsoftの新規のソースコードの約3割をAIが生成、Nadella氏が明かす
https://news.mynavi.jp/techplus/article/20250507-3271749/
スコットランドの住民を悩ます謎の怪音「ヘブリディアン・ハム」の正体はいまだ不明
https://karapaia.com/archives/507130.html
OpenAI、ChatGPTの6つのモデルの違いと適切なプロンプトを解説
https://news.mynavi.jp/techplus/article/20250507-3275757/
Microsoftの新規のソースコードの約3割をAIが生成、Nadella氏が明かす
https://news.mynavi.jp/techplus/article/20250507-3271749/
スコットランドの住民を悩ます謎の怪音「ヘブリディアン・ハム」の正体はいまだ不明
https://karapaia.com/archives/507130.html
825デフォルトの名無しさん (ワッチョイ b7a1-KeI6)
2025/05/07(水) 15:47:16.05ID:n3ae2haO0 怪音をお尻から出してる奴、正直に名乗り出なさい
826デフォルトの名無しさん (スフッ Sd32-RYHa)
2025/05/08(木) 08:38:35.44ID:KCA9Lwh4d WSLでdebianを使っているけど、動作が軽いし便利だよね vscodeの起動も早い
827デフォルトの名無しさん (ワッチョイ af58-Enlg)
2025/05/09(金) 07:07:15.84ID:+l+evNW70828デフォルトの名無しさん (ワッチョイ e3cf-x2SE)
2025/05/09(金) 13:25:09.01ID:3M4tliEX0 天国は良い所か聞けばわかるよ
829デフォルトの名無しさん (ワッチョイ 162a-4tkZ)
2025/05/09(金) 19:22:34.32ID:rWwF6jNu0 帰って来たヨッパライか。
830デフォルトの名無しさん (ワッチョイ d602-ujY1)
2025/05/09(金) 22:19:38.30ID:toYOiewu0831デフォルトの名無しさん (ワッチョイ d602-ujY1)
2025/05/09(金) 22:21:43.53ID:toYOiewu0 公式ホームページ(半世紀遅れ)
良いドメイン取れてよかったね
良いドメイン取れてよかったね
832デフォルトの名無しさん (ワッチョイ 12ad-T6Ba)
2025/05/10(土) 14:39:03.43ID:17EyeKMh0 >>825
はい。
はい。
833デフォルトの名無しさん (ワッチョイ 338b-5lkG)
2025/05/24(土) 20:58:15.38ID:aQkh9jD40 初心者一名様ご案内、興味あれば以下よろしく。
https://mevius.5ch.net/test/read.cgi/tech/1728823763/10-
概略:
PHPでoniguruma(正規表現ライブラリ)最新版の機能を使いたい為、
(文法含めて)C言語の知識がまるでないのに環境構築してコンパイルし、
コードの問題(未改修箇所)も見つけて動かしてしまった剛の者(ただしかなりラッキーパンチ)
とはいえGitHub上で活発にやりとりしてるし、ポテンシャルは高い
PHPとPythonは使えるらしい
すまんが俺自身は他人に教える事自体には興味ない
俺は「他人のコードを読む経験が不足している」と自認しており、
それなりの品質が期待されるコード(=有名なOSS)は機会を見つけて読む事にしていて、
今回もonigurumaのコードを読む機会として便乗しただけ
だからお前らが同様の事をやるなら便乗してもいい
俺の文法/規格の知識は完全にお前ら以下で、よく「それC++」と言われてる連中と同程度
(俺はCとC++を分離出来てないし、C++コンパイラで通る範囲のCしか使ってない)
俺はお前らがやってる重箱の隅的問題には興味なく、もっと大局の、
「この仕様/機能を実現する為、どういうコード戦略で記述するか」に興味がある
(数行のコード内での詳細文法ではなく、数万行のコードをどう構成するかに興味ある)
最近気に入ってる言語はJS
https://mevius.5ch.net/test/read.cgi/tech/1728823763/10-
概略:
PHPでoniguruma(正規表現ライブラリ)最新版の機能を使いたい為、
(文法含めて)C言語の知識がまるでないのに環境構築してコンパイルし、
コードの問題(未改修箇所)も見つけて動かしてしまった剛の者(ただしかなりラッキーパンチ)
とはいえGitHub上で活発にやりとりしてるし、ポテンシャルは高い
PHPとPythonは使えるらしい
すまんが俺自身は他人に教える事自体には興味ない
俺は「他人のコードを読む経験が不足している」と自認しており、
それなりの品質が期待されるコード(=有名なOSS)は機会を見つけて読む事にしていて、
今回もonigurumaのコードを読む機会として便乗しただけ
だからお前らが同様の事をやるなら便乗してもいい
俺の文法/規格の知識は完全にお前ら以下で、よく「それC++」と言われてる連中と同程度
(俺はCとC++を分離出来てないし、C++コンパイラで通る範囲のCしか使ってない)
俺はお前らがやってる重箱の隅的問題には興味なく、もっと大局の、
「この仕様/機能を実現する為、どういうコード戦略で記述するか」に興味がある
(数行のコード内での詳細文法ではなく、数万行のコードをどう構成するかに興味ある)
最近気に入ってる言語はJS
834デフォルトの名無しさん (ワッチョイ 1f35-rwyI)
2025/05/25(日) 19:39:48.52ID:OO+eY7q40 ?
キモ
キモ
835デフォルトの名無しさん (スッップ Sdbf-nAGj)
2025/05/27(火) 14:54:10.14ID:qQFXqwqXd カッコ書きを多用してるから多分ADHDなんだろう
ここでも他に時々見かけるけどまあそっとしといてやれ
ここでも他に時々見かけるけどまあそっとしといてやれ
836デフォルトの名無しさん (ワッチョイ 8b52-3DDr)
2025/05/27(火) 15:25:06.34ID:K50j2XjJ0 星たちは「音」を奏でていた。楽器のように。歌のように
5/26(月) 19:00配信
https://news.yahoo.co.jp/articles/1996331be041f2656a929fec1ccd595ed3b4a053
量子世界では鏡の中心で本物と鏡像が溶け合う観測不能ゾーンが発生する
2025.05.26 MON
https://nazology.kusuguru.co.jp/archives/178271
1キロ先から「幅3ミリの文字」が読めるレーザーを開発!
2025.05.26 20:00:48 MONDAY
https://nazology.kusuguru.co.jp/archives/178219
5/26(月) 19:00配信
https://news.yahoo.co.jp/articles/1996331be041f2656a929fec1ccd595ed3b4a053
量子世界では鏡の中心で本物と鏡像が溶け合う観測不能ゾーンが発生する
2025.05.26 MON
https://nazology.kusuguru.co.jp/archives/178271
1キロ先から「幅3ミリの文字」が読めるレーザーを開発!
2025.05.26 20:00:48 MONDAY
https://nazology.kusuguru.co.jp/archives/178219
837デフォルトの名無しさん (ワッチョイ 8bbd-3DDr)
2025/05/28(水) 08:34:27.62ID:d5fn07f20 【悲報】財務省、廃棄したはずの森友文書を別の開示請求でうっかり開示してしまう🥺 [928380653]
2025/05/25(日) 14:40:21.21
https://hayabusa9.5ch.net/test/read.cgi/news/1748151621/
第三者委員会「エロ小説漏洩は斎藤知事の指示の可能性が高い」 [595582602]
2025/05/27(火) 14:50:41.31
https://hayabusa9.5ch.net/test/read.cgi/news/1748325041/
元総務部長が裏切り「斎藤知事に指示されてやった」 斎藤兵庫オワコン逮捕😭 [659060378]
2025/05/27(火) 23:30:03.48
https://hayabusa9.5ch.net/test/read.cgi/news/1748356203/
立花孝志 業務上横領の疑いで刑事告訴 警視庁が受理(画像あり) [659060378]
2025/05/27(火) 21:37:55.62
https://hayabusa9.5ch.net/test/read.cgi/news/1748349475/
2025/05/25(日) 14:40:21.21
https://hayabusa9.5ch.net/test/read.cgi/news/1748151621/
第三者委員会「エロ小説漏洩は斎藤知事の指示の可能性が高い」 [595582602]
2025/05/27(火) 14:50:41.31
https://hayabusa9.5ch.net/test/read.cgi/news/1748325041/
元総務部長が裏切り「斎藤知事に指示されてやった」 斎藤兵庫オワコン逮捕😭 [659060378]
2025/05/27(火) 23:30:03.48
https://hayabusa9.5ch.net/test/read.cgi/news/1748356203/
立花孝志 業務上横領の疑いで刑事告訴 警視庁が受理(画像あり) [659060378]
2025/05/27(火) 21:37:55.62
https://hayabusa9.5ch.net/test/read.cgi/news/1748349475/
838デフォルトの名無しさん (ワッチョイ efe7-TsVb)
2025/05/28(水) 10:43:48.21ID:U7MV9uLa0 おれもHDMIでDVIだよ
839デフォルトの名無しさん (ワッチョイ 0bec-qYXw)
2025/05/28(水) 20:10:39.46ID:EIair+pr0 【兵庫】「知事・元副知事の指示に基づき正当業務を…」斎藤知事の“側近”井ノ本氏の弁明書 知事は改めて否定 [ぐれ★]
2025/05/28(水) 17:08:14.82
https://asahi.5ch.net/test/read.cgi/newsplus/1748419694/
※追い詰められてないか?
2025/05/28(水) 17:08:14.82
https://asahi.5ch.net/test/read.cgi/newsplus/1748419694/
※追い詰められてないか?
840デフォルトの名無しさん (ワッチョイ 7b5f-DKvR)
2025/05/28(水) 21:43:45.39ID:PBslL45A0 スレに関係無いもん貼るなよ
841デフォルトの名無しさん (アウアウウー Sa8f-q7Ty)
2025/05/30(金) 13:31:01.21ID:XWQpoVmBa もうプログラマー寄り付かなくなってるんじゃまいか
842デフォルトの名無しさん (ワッチョイ 23ad-hhgN)
2025/06/23(月) 13:59:19.19ID:gexPgDcc0 C言語の終焉か
843デフォルトの名無しさん (ワッチョイ 8dc1-m8Iy)
2025/06/23(月) 14:32:37.67ID:gJ1K/dLq0 プログラマーの終焉
844デフォルトの名無しさん (ワッチョイ 4b10-sIdA)
2025/06/23(月) 15:24:01.44ID:Le9JOtTU0 C は終焉の C
845デフォルトの名無しさん (アウアウウー Sa69-G7Nc)
2025/06/24(火) 09:50:49.50ID:17zM306Da 文部科学省が標準のローマ字表記を改めるんだってよ
846デフォルトの名無しさん (ブーイモ MM43-1F4K)
2025/06/28(土) 16:40:01.58ID:uH6ba5rfM しょぼい機器でも物凄い性能だから、C言語を使う必要もなくなっている。
847デフォルトの名無しさん (ササクッテロ Sp81-AU/s)
2025/06/28(土) 16:47:05.13ID:WGUfZy3xp もはやjavascriptすら動くからなぁw
848デフォルトの名無しさん (オイコラミネオ MM89-Hs71)
2025/06/28(土) 21:00:47.99ID:HZiRGN/SM ただまあ、バイト単位で処理したい時には JS や Python や Java や Ruby
より便利だけどな。
より便利だけどな。
849デフォルトの名無しさん (オイコラミネオ MM89-Hs71)
2025/06/28(土) 21:01:32.93ID:HZiRGN/SM あと、文字コードだとかを勝手に変換しないというのも便利だな。
850デフォルトの名無しさん (ワッチョイ 4201-V852)
2025/06/30(月) 06:22:37.34ID:m9Iz5ero0 結局、自作したいだけかよw
851デフォルトの名無しさん (ワッチョイ fbf9-1Wc0)
2025/06/30(月) 11:37:57.93ID:YZeS8CxH0 外食に飽きると自炊を始めるものだよ
852デフォルトの名無しさん (ワッチョイ c602-1ra/)
2025/06/30(月) 12:00:43.86ID:rn9gnazy0 そろそろc談義したいぞ…
853デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/06/30(月) 13:32:07.78ID:Bi14XNYeM C/C++は、(レンタル)サーバーサイドでも、ソースコードを盗まれないというメリットがある。
854デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/06/30(月) 13:49:28.37ID:Bi14XNYeM PHPは一見便利なように見えても、何をやっているのか不安が残る部分がある :
・文字コードの扱い。勝手に変換される可能性。それが脆弱性の原因になる可能性がある。
・SessionID の管理のされ方。それがブラックボックスで余り説明が無いので危険。
・文字列が「長さ指定文字列」と「0終端文字列」との二種類あり、デフォルトは前者だが、
正規表現系は後者である場合があり、それを知らないと脆弱性の原因になる。
・文字コードの扱い。勝手に変換される可能性。それが脆弱性の原因になる可能性がある。
・SessionID の管理のされ方。それがブラックボックスで余り説明が無いので危険。
・文字列が「長さ指定文字列」と「0終端文字列」との二種類あり、デフォルトは前者だが、
正規表現系は後者である場合があり、それを知らないと脆弱性の原因になる。
855デフォルトの名無しさん (ワッチョイ 62f6-vcS6)
2025/06/30(月) 18:59:51.22ID:YQWckD/50 最近はFPGAでコンピュータ作ってるけどメモリが4kbytesとかしかないのでC言語があると助かります。
856デフォルトの名無しさん (ワッチョイ fb06-1Wc0)
2025/06/30(月) 20:50:19.20ID:YZeS8CxH0 アセンブラ使え
857デフォルトの名無しさん (ワッチョイ c379-SOZQ)
2025/06/30(月) 20:56:51.68ID:i+8hTHYI0 そこまでのキツい環境ならC使わずにアセンブラ使えって思う
858はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7b32-T+w5)
2025/06/30(月) 20:57:51.84ID:bv4WQiut0 その規模なら C で書くにしても配慮すべき低レイヤの事情がありすぎてあまり C の甲斐がなさそうだと私も思う。
859デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/07/01(火) 02:30:13.65ID:LkiphQyhM PHPの文字列は、1つの文字列の中でも、文字によってバイト数が異なるそうだ。
だから、$str[$k] の $k は、文字単位ではなくバイト単位。
文字単位で指定したい場合には、
mb_substr($str, $k, 1, "UTF-8")
とするとのこと。
文字列の終端には一応 0x00 が入っているが、文字の長さはバイト数で管理されており、0を
終端とはみなしていない。だから、文字コードが 0x00 の文字も文字列の中に含めることが可能。
$str = "こんにちは";
echo strlen($str); // バイト数(UTF-8なら15)
echo mb_strlen($str); // 文字数(5文字)
ところが、正規表現を扱う場合には、0x00 のバイトが含まれていると、文字列の終端と
みなされることがある。だから、ユーザーによって入力された文字列を正規表現で
安全チェックをしたつもりでも、文字列の途中に 0x00 のバイトが含まれていて、
それ以後に危険なコードをが含まれている倍がある。
C言語で作っていれば子の様な齟齬は起きない。
だから、$str[$k] の $k は、文字単位ではなくバイト単位。
文字単位で指定したい場合には、
mb_substr($str, $k, 1, "UTF-8")
とするとのこと。
文字列の終端には一応 0x00 が入っているが、文字の長さはバイト数で管理されており、0を
終端とはみなしていない。だから、文字コードが 0x00 の文字も文字列の中に含めることが可能。
$str = "こんにちは";
echo strlen($str); // バイト数(UTF-8なら15)
echo mb_strlen($str); // 文字数(5文字)
ところが、正規表現を扱う場合には、0x00 のバイトが含まれていると、文字列の終端と
みなされることがある。だから、ユーザーによって入力された文字列を正規表現で
安全チェックをしたつもりでも、文字列の途中に 0x00 のバイトが含まれていて、
それ以後に危険なコードをが含まれている倍がある。
C言語で作っていれば子の様な齟齬は起きない。
860デフォルトの名無しさん (ワッチョイ 5f98-4xcB)
2025/07/01(火) 05:48:42.66ID:M5z4vIa80 >>859
× > PHPの文字列は
○ unicodeは
× > C言語で作っていれば
○ asciiに限定すれば
お前は基本的なところがまるで理解出来てない
そもそも文字コードの話なのだから、どの言語でも同じ
特定の言語を使用すると回避出来るとかいう話にはなり得ない
× > PHPの文字列は
○ unicodeは
× > C言語で作っていれば
○ asciiに限定すれば
お前は基本的なところがまるで理解出来てない
そもそも文字コードの話なのだから、どの言語でも同じ
特定の言語を使用すると回避出来るとかいう話にはなり得ない
861デフォルトの名無しさん (ワッチョイ 5f98-4xcB)
2025/07/01(火) 06:18:52.12ID:M5z4vIa80 と思ったが、もしかして最近の言語はutf-8をネイティブサポートしていて、(=内部文字列がutf-8)
この辺を全部自動的に回避出来るのか?(=プログラマに文字コードの知識が全く必要ない)
Cはutf以前だから勿論サポート無し
PHPはWeb言語だから文字列=バイトストリーム扱いで、共用体が駆使されるネット向けになってるだけ
JSはutf-16だったがサロゲートペア導入でAPIが2つある(サロゲートペア対応版と非対応版)
Rustは知らんが、さらっと調べた限りutf-8で、逆にインデックスアクセスが出来ないらしい(3文字目を[3]で取得出来ない)
ただこれだと遅くなるだけなので、Cを駆逐したいと言いながら便利さを追求してるRustは迷走してる
Pythonは、どうやら全自動で出来るみたいね…
この辺を全部自動的に回避出来るのか?(=プログラマに文字コードの知識が全く必要ない)
Cはutf以前だから勿論サポート無し
PHPはWeb言語だから文字列=バイトストリーム扱いで、共用体が駆使されるネット向けになってるだけ
JSはutf-16だったがサロゲートペア導入でAPIが2つある(サロゲートペア対応版と非対応版)
Rustは知らんが、さらっと調べた限りutf-8で、逆にインデックスアクセスが出来ないらしい(3文字目を[3]で取得出来ない)
ただこれだと遅くなるだけなので、Cを駆逐したいと言いながら便利さを追求してるRustは迷走してる
Pythonは、どうやら全自動で出来るみたいね…
862デフォルトの名無しさん (ブーイモ MM02-nkZs)
2025/07/01(火) 08:38:13.77ID:WjfKubzqM >>860
859は別に間違ったこと言ってないでしょ
そこまで上から目線で言いたいならunicodeは書記素クラスタで考えないといけないので可変、ぐらい言わないとね
コードポイントならUTF-32は4バイト固定だし
むしろc言語はasciiという言い方は複数の意味でおかしい
859は別に間違ったこと言ってないでしょ
そこまで上から目線で言いたいならunicodeは書記素クラスタで考えないといけないので可変、ぐらい言わないとね
コードポイントならUTF-32は4バイト固定だし
むしろc言語はasciiという言い方は複数の意味でおかしい
863デフォルトの名無しさん (ワッチョイ 5f01-4xcB)
2025/07/01(火) 09:47:54.97ID:M5z4vIa80 >>862
俺は859は根本的に勘違いしてる(≒間違っている)という見方を今も変えてないが、
少なくとも862の方が詳しいようだから(859の相手は)お前に任せるわ。
俺より詳しい奴が居る場所で俺が説法する意味もなく、
馬鹿と初心者が無限に沸くネットで間違いを全部指摘して回るのは無理だし。
下から目線のゆとりZ様同士でよろしくやってくれ。
どのみち俺とお前らではどうやっても合わないのはこれまでも散々経験してきた事だ。
俺は859は根本的に勘違いしてる(≒間違っている)という見方を今も変えてないが、
少なくとも862の方が詳しいようだから(859の相手は)お前に任せるわ。
俺より詳しい奴が居る場所で俺が説法する意味もなく、
馬鹿と初心者が無限に沸くネットで間違いを全部指摘して回るのは無理だし。
下から目線のゆとりZ様同士でよろしくやってくれ。
どのみち俺とお前らではどうやっても合わないのはこれまでも散々経験してきた事だ。
864デフォルトの名無しさん (ワッチョイ 5f01-4xcB)
2025/07/01(火) 09:48:28.12ID:M5z4vIa80 とはいえ一応内容について触れておくと、
> 書記素クラスタ
重ね文字等の事は知ってるぞ。ただ俺はこれは仕様が決まってないかと思っていたのだが、一応あるんだな。
http://unicode.org/reports/tr29/
ただこれ、問題は"Unicode 16.0.0"と、バージョンがやたら高い事にあると思う。
自然言語が既に16回も改訂してるわけはないので、中途半端な仕様を決め、改訂しまくってるという事だから。
今の仕様で実装しても、出来上がる頃には仕様が改訂されている事もあり得る。
> コードポイントならUTF-32は4バイト固定だし
当然これも知ってるが、現実的にutf-32を使う事はほぼあり得ないだろ。
文字列処理は結局の所速度/メモリ重視だから、utf-32ではコードは書きやすいかもだが使い物にならない。
つかこの辺859に言ったところで通じるわけもなく、マウントが目的になってるのはお前の方だ。
だからこそ「上から目線」に過度に敏感なのがゆとりZの傾向でもあるが。
> むしろc言語はasciiという言い方は複数の意味でおかしい
話を続ける気があるなら、何の事なのかもう少し具体的に言え。
まあ一言ずつに纏めると、
859: PHPは文字の扱いに色々問題があるが、C言語にはない
860: お前は根本的に間違ってるから、文字コードについて勉強し直せ ← 859に通じる範囲で返事してる
862: 俺の方が詳しいのに上から目線ウゼエ ← マウントを取り返しただけで、859に通じるようには書いてない
ここら辺がゆとりZがコミュ障な所だ。
まあそれでもお互いにやるのは自由、よろしくやってくれ。
俺は降りる。
> 書記素クラスタ
重ね文字等の事は知ってるぞ。ただ俺はこれは仕様が決まってないかと思っていたのだが、一応あるんだな。
http://unicode.org/reports/tr29/
ただこれ、問題は"Unicode 16.0.0"と、バージョンがやたら高い事にあると思う。
自然言語が既に16回も改訂してるわけはないので、中途半端な仕様を決め、改訂しまくってるという事だから。
今の仕様で実装しても、出来上がる頃には仕様が改訂されている事もあり得る。
> コードポイントならUTF-32は4バイト固定だし
当然これも知ってるが、現実的にutf-32を使う事はほぼあり得ないだろ。
文字列処理は結局の所速度/メモリ重視だから、utf-32ではコードは書きやすいかもだが使い物にならない。
つかこの辺859に言ったところで通じるわけもなく、マウントが目的になってるのはお前の方だ。
だからこそ「上から目線」に過度に敏感なのがゆとりZの傾向でもあるが。
> むしろc言語はasciiという言い方は複数の意味でおかしい
話を続ける気があるなら、何の事なのかもう少し具体的に言え。
まあ一言ずつに纏めると、
859: PHPは文字の扱いに色々問題があるが、C言語にはない
860: お前は根本的に間違ってるから、文字コードについて勉強し直せ ← 859に通じる範囲で返事してる
862: 俺の方が詳しいのに上から目線ウゼエ ← マウントを取り返しただけで、859に通じるようには書いてない
ここら辺がゆとりZがコミュ障な所だ。
まあそれでもお互いにやるのは自由、よろしくやってくれ。
俺は降りる。
865デフォルトの名無しさん (ワッチョイ c379-SOZQ)
2025/07/01(火) 10:03:19.08ID:0aieN+8C0 普通に何も考えずに使ってて問題起きないならstrlen以外にもmbslenとかwcslenみたいなのを用意されることはないんだよな
866デフォルトの名無しさん (ワッチョイ 7f7b-4xcB)
2025/07/01(火) 10:07:53.62ID:O7C1rCRT0 ああついでに言っておくと、
ゆとり以前(=俺):内容が正しければ態度なんてどうでもいい
ゆとりZ:ボクがどんなにマヌケな間違いをしていたとしても、
優しく丁寧に教えてくれる事が絶対条件で、
優しければ内容が多少間違っていても許容される(←いやこれは俺は許容出来ねえ)
という違いだな。まあゆとりZ同士でよろしくやってくれ。
ただまあ、Qiitaのスレとかチラ見してるが、
発言の自由がある=どんな馬鹿でも発言出来る=間違った情報も当然発信される、なのだから、
Qiitaに正確性を求めるのは仕様的に無理なので、連中も間違ってて、
Qiitaは玉石混淆な上で、石が大量生産されるのは仕様として甘受し、玉を探すべきだとは思うがな。
とはいえQiitaが石→玉化する機構を持ち合わせられない(=間違いを指摘する事すら出来ない)
のは上記ゆとりZ価値観の賜だから、詰んではいるが、それでも(Qiitaというサイトが)無いよりは断然いいし。
つまりだな、お前らゆとりZは「上から目線ガー」とか一々やってるから駄目なのであって、
「相手」(今回は859)に向き合う気がないから、
Qiita等の「一方的に発信するだけ」のツールは断然相性がいいが、
そこで「双方向な議論」とかはまるで出来ないんだと思うぜ。
859にとって困るのは、「上から目線」ではなく、「間違いを指摘してもらえない」事だろ。
(ただこれがゆとりZに取っては違うらしいので俺にはどうにも合わないが)
ゆとり以前(=俺):内容が正しければ態度なんてどうでもいい
ゆとりZ:ボクがどんなにマヌケな間違いをしていたとしても、
優しく丁寧に教えてくれる事が絶対条件で、
優しければ内容が多少間違っていても許容される(←いやこれは俺は許容出来ねえ)
という違いだな。まあゆとりZ同士でよろしくやってくれ。
ただまあ、Qiitaのスレとかチラ見してるが、
発言の自由がある=どんな馬鹿でも発言出来る=間違った情報も当然発信される、なのだから、
Qiitaに正確性を求めるのは仕様的に無理なので、連中も間違ってて、
Qiitaは玉石混淆な上で、石が大量生産されるのは仕様として甘受し、玉を探すべきだとは思うがな。
とはいえQiitaが石→玉化する機構を持ち合わせられない(=間違いを指摘する事すら出来ない)
のは上記ゆとりZ価値観の賜だから、詰んではいるが、それでも(Qiitaというサイトが)無いよりは断然いいし。
つまりだな、お前らゆとりZは「上から目線ガー」とか一々やってるから駄目なのであって、
「相手」(今回は859)に向き合う気がないから、
Qiita等の「一方的に発信するだけ」のツールは断然相性がいいが、
そこで「双方向な議論」とかはまるで出来ないんだと思うぜ。
859にとって困るのは、「上から目線」ではなく、「間違いを指摘してもらえない」事だろ。
(ただこれがゆとりZに取っては違うらしいので俺にはどうにも合わないが)
867デフォルトの名無しさん (ワッチョイ 5f01-4xcB)
2025/07/01(火) 10:57:25.82ID:M5z4vIa80 リンクは以下の方がよかったかも
https://hydrocul.github.io/wiki/blog/2015/1025-unicode-grapheme-clusters.html
> Grapheme cluster の境界定義
> CR の次に LF が続く箇所は境界にならない
これだとCRLFは一文字扱いだから、utf-8の0x7f以下だけ使っても(厳密には)asciiとは違うって事か?
なんで一々仕様を無駄に変更するのだ?という気はするが、
見てる限りunicodeって自然言語学者が策定してる仕様で、プログラミングのし易さなんてまるで考慮して無いな
https://hydrocul.github.io/wiki/blog/2015/1025-unicode-grapheme-clusters.html
> Grapheme cluster の境界定義
> CR の次に LF が続く箇所は境界にならない
これだとCRLFは一文字扱いだから、utf-8の0x7f以下だけ使っても(厳密には)asciiとは違うって事か?
なんで一々仕様を無駄に変更するのだ?という気はするが、
見てる限りunicodeって自然言語学者が策定してる仕様で、プログラミングのし易さなんてまるで考慮して無いな
868デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/07/01(火) 16:58:38.98ID:W1sziXWKM PHPに限らず、文字コードを勝手にいじくる言語は脆弱性の温床になる。
C言語は指示しない限りは何もしないから、むしろ安全。
860は、馬鹿だから理解できない。
C言語は指示しない限りは何もしないから、むしろ安全。
860は、馬鹿だから理解できない。
869デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/07/01(火) 17:04:55.37ID:W1sziXWKM 中途半端に自動化しようとしていることが脆弱性の温床になる。
詳細な仕様を書かないで「こういう場合にはこうすれば安全ですよ」
みたいなのが結構危ない。
なぜ、そうするのか。その関数は厳密に何を行っているのか。
「簡易言語」には、そういう情報が欠落していることが多い。
詳細な仕様を書かないで「こういう場合にはこうすれば安全ですよ」
みたいなのが結構危ない。
なぜ、そうするのか。その関数は厳密に何を行っているのか。
「簡易言語」には、そういう情報が欠落していることが多い。
870デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/07/01(火) 17:07:29.61ID:W1sziXWKM フレームワークも危険だ。
「完成品」として何もカスタマイズしないで使っているなら、安全かもしれない。
ところが、「プラグイン」と呼ばれているものを組み合わせたり、
独自にカスタマイズしようとすると、とたんに危険になる。
なぜなら、仕組みが分かりにくく、ソースが巨大で解読しにくいことが多いからだ。
特に問題なのはオープンソースのフレームワークだ。
ソースが汚いものが多いから、それが原因で理解が難しくなり、脆弱性が入り込む。
「完成品」として何もカスタマイズしないで使っているなら、安全かもしれない。
ところが、「プラグイン」と呼ばれているものを組み合わせたり、
独自にカスタマイズしようとすると、とたんに危険になる。
なぜなら、仕組みが分かりにくく、ソースが巨大で解読しにくいことが多いからだ。
特に問題なのはオープンソースのフレームワークだ。
ソースが汚いものが多いから、それが原因で理解が難しくなり、脆弱性が入り込む。
871デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/07/01(火) 17:10:17.61ID:W1sziXWKM 860は、物事の理解が甘い。
自分が馬鹿なことに気付いてない。
5chだけで偉そうにしている馬鹿。
自分が馬鹿なことに気付いてない。
5chだけで偉そうにしている馬鹿。
872デフォルトの名無しさん (ワッチョイ c3ef-OGY2)
2025/07/01(火) 17:12:20.54ID:rc7NgUjs0 自己紹介ですか?
873デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/07/01(火) 17:15:03.47ID:W1sziXWKM >>872
おまえは、自覚が無い馬鹿だ。
おまえは、自覚が無い馬鹿だ。
874デフォルトの名無しさん (ワッチョイ c379-SOZQ)
2025/07/01(火) 17:41:41.27ID:0aieN+8C0 全然違う話になったぞ???
875デフォルトの名無しさん (ワッチョイ 7748-ar6z)
2025/07/01(火) 19:57:14.17ID:4pZHV5xo0 けどさ
今のWindowsって内部的にはUTF16LEなんだよな
それをアプリ側に合わせてマルチバイトに変換したりしてるわけで
今のWindowsって内部的にはUTF16LEなんだよな
それをアプリ側に合わせてマルチバイトに変換したりしてるわけで
876デフォルトの名無しさん (ワッチョイ 5ffc-4xcB)
2025/07/01(火) 20:03:31.00ID:M5z4vIa80 >>874
まあ859もゆとりZだったというオチだよ。
見えてた展開ではあったが、放置するのも問題かと思って最低限のツッコミを860でしたつもりだったが、
ゆとりZが釣れまくってどうにもならねえ。脱線しすぎ。
5chにはコミュ障が多いのでついでに解説しとくと、
859のテイ、何だかよく分からん独り言は、ゆとりZ特有のムーブで、
・質問して答えてもらえないと傷つくし、
・議論提起してボコられたら嫌だし、
・何だかよく分からん独り言にしとけば、どういう展開になっても逃げられるし!!!
って事で、傷つかない為に予防線張りまくりの戦術、連中なりの「コミュ上手」な手法らしい。
いやいや、お前ら一々メンドクセエわ。
まあ859もゆとりZだったというオチだよ。
見えてた展開ではあったが、放置するのも問題かと思って最低限のツッコミを860でしたつもりだったが、
ゆとりZが釣れまくってどうにもならねえ。脱線しすぎ。
5chにはコミュ障が多いのでついでに解説しとくと、
859のテイ、何だかよく分からん独り言は、ゆとりZ特有のムーブで、
・質問して答えてもらえないと傷つくし、
・議論提起してボコられたら嫌だし、
・何だかよく分からん独り言にしとけば、どういう展開になっても逃げられるし!!!
って事で、傷つかない為に予防線張りまくりの戦術、連中なりの「コミュ上手」な手法らしい。
いやいや、お前ら一々メンドクセエわ。
877デフォルトの名無しさん (ワッチョイ 5ffc-4xcB)
2025/07/01(火) 20:04:09.01ID:M5z4vIa80 >>868
> 860は、馬鹿だから理解できない。
お前がどう思おうと自由だが、さすがに俺よりお前の方が賢いと思う奴は居ないと思うぞ。
まあこれも862と同様のゆとりZ特有ムーブで、「ばかにされた!!!」事が内容に勝ってる。
いやいや、お前がそもそもマヌケな事を言わなければ防げた展開だろ、とはならない。
> PHPに限らず、文字コードを勝手にいじくる言語は脆弱性の温床になる。
> 特に問題なのはオープンソースのフレームワークだ
少なくとも今のお前より理解してる連中が作ってるから、
今のお前の知識と知能で作った物よりは安全だろうよ。
ついでに言うとこれもゆとりZの特徴で、
心根で他人を見下してるからこんな発言になるし、また、
心根で他人に対してマウントを取りたい、上から目線で話したい、と思ってて、でも我慢してるからこそ、「上から目線」に過敏になる。
オープンソースにゴミが多いのも事実としても、
同じ物を作るのはかなり大変なのも、結果的に生き残ってる物はそれなりに鍛えられた品質なのも事実。
各言語処理系なんて相当の人数が関わって改善された結果だから、同等以上の品質の物を作るのは事実上無理だと思うけど。
ゆとりZは「謎の心根の『上から目線』」がありすぎ。
それでいて「表面的な『上から目線』」にゼロトレランスなのはちゃんちゃらおかしいのだが、まあ連中はここら辺を矛盾に感じないらしい。
連中は表面的なコミュニケーションしか出来てないってのがこの辺から分かる。
> 860は、馬鹿だから理解できない。
お前がどう思おうと自由だが、さすがに俺よりお前の方が賢いと思う奴は居ないと思うぞ。
まあこれも862と同様のゆとりZ特有ムーブで、「ばかにされた!!!」事が内容に勝ってる。
いやいや、お前がそもそもマヌケな事を言わなければ防げた展開だろ、とはならない。
> PHPに限らず、文字コードを勝手にいじくる言語は脆弱性の温床になる。
> 特に問題なのはオープンソースのフレームワークだ
少なくとも今のお前より理解してる連中が作ってるから、
今のお前の知識と知能で作った物よりは安全だろうよ。
ついでに言うとこれもゆとりZの特徴で、
心根で他人を見下してるからこんな発言になるし、また、
心根で他人に対してマウントを取りたい、上から目線で話したい、と思ってて、でも我慢してるからこそ、「上から目線」に過敏になる。
オープンソースにゴミが多いのも事実としても、
同じ物を作るのはかなり大変なのも、結果的に生き残ってる物はそれなりに鍛えられた品質なのも事実。
各言語処理系なんて相当の人数が関わって改善された結果だから、同等以上の品質の物を作るのは事実上無理だと思うけど。
ゆとりZは「謎の心根の『上から目線』」がありすぎ。
それでいて「表面的な『上から目線』」にゼロトレランスなのはちゃんちゃらおかしいのだが、まあ連中はここら辺を矛盾に感じないらしい。
連中は表面的なコミュニケーションしか出来てないってのがこの辺から分かる。
878デフォルトの名無しさん (ワッチョイ 7f7b-4xcB)
2025/07/01(火) 20:14:50.32ID:O7C1rCRT0 >>875
それは正しいよ。
サロゲートペア以前はutf-16が各国文字を固定長で扱える(多分)唯一のエンコードだったから、
ローカライズ前提のwindowsの内部コードをutf-16で作るのは正しい。
逆に言えば、サロゲートペア以前はutf-32なんて使う意味なく、実際使われてもなかったはず。
今固定長に拘るならutf-32しかないけど、Rustがutf-8を選択したのは、utf-32は使い物にならないという判断のはず。
(まあゆとりZなら「俺の判断の方が正しい」となるのだろうが、
俺の心根はそこまで「上から目線」ではないので、Rust陣営の判断はそれなりに尊重する。
なおRust信者は死ねと常々思っているが、それとこれとは別の話)
それは正しいよ。
サロゲートペア以前はutf-16が各国文字を固定長で扱える(多分)唯一のエンコードだったから、
ローカライズ前提のwindowsの内部コードをutf-16で作るのは正しい。
逆に言えば、サロゲートペア以前はutf-32なんて使う意味なく、実際使われてもなかったはず。
今固定長に拘るならutf-32しかないけど、Rustがutf-8を選択したのは、utf-32は使い物にならないという判断のはず。
(まあゆとりZなら「俺の判断の方が正しい」となるのだろうが、
俺の心根はそこまで「上から目線」ではないので、Rust陣営の判断はそれなりに尊重する。
なおRust信者は死ねと常々思っているが、それとこれとは別の話)
879デフォルトの名無しさん (ワッチョイ 7748-ar6z)
2025/07/01(火) 20:20:08.26ID:4pZHV5xo0 そうではなく
OSレベルで自動変換が行われているのに
言語レベルの自動変換に文句言うのもなんだなぁと
そういう話
OSレベルで自動変換が行われているのに
言語レベルの自動変換に文句言うのもなんだなぁと
そういう話
880デフォルトの名無しさん (ワッチョイ 5ffc-4xcB)
2025/07/01(火) 20:35:01.95ID:M5z4vIa80 >>879
その意味なら、OSレベルの自動変換はされてないぞ。
例えば、SJISファイルはSJISファイルとして保存されてるだろ。
Windowsに保存する限りあらゆるファイルが自動的にutf-16にされ、
もう二度と各ファイルのエンコードを気にする必要がないのなら、大半の人はこの方が助かるとは思うが。(俺もこれでいい)
同様に、.NETでファイルストリームを開いたら、あらゆるエンコードが自動的にutf-16になって見える、って事もないだろ。
(APIチラ見する限り、Text.Encodingがあるから手動で切り換えのはず)
ただこれを目指した物がBOMなのだろうけど、上手く機能してるとは思えないね。
その意味なら、OSレベルの自動変換はされてないぞ。
例えば、SJISファイルはSJISファイルとして保存されてるだろ。
Windowsに保存する限りあらゆるファイルが自動的にutf-16にされ、
もう二度と各ファイルのエンコードを気にする必要がないのなら、大半の人はこの方が助かるとは思うが。(俺もこれでいい)
同様に、.NETでファイルストリームを開いたら、あらゆるエンコードが自動的にutf-16になって見える、って事もないだろ。
(APIチラ見する限り、Text.Encodingがあるから手動で切り換えのはず)
ただこれを目指した物がBOMなのだろうけど、上手く機能してるとは思えないね。
881デフォルトの名無しさん (ワッチョイ 7748-ar6z)
2025/07/01(火) 20:40:05.31ID:4pZHV5xo0 sjisファイルを読み込んでメモ帳で表示させる場合、内部のレンダリングエンジンとかはutf16に変換されたものじゃねえの?
それをまたsjisで保存する際には変換されてる
それをまたsjisで保存する際には変換されてる
882デフォルトの名無しさん (ワッチョイ 7748-ar6z)
2025/07/01(火) 20:41:51.49ID:4pZHV5xo0 winapiのA系もutf16に変換されてる表示されているんじゃないの?
883はちみつ餃子 ◆8X2XSCHEME (ワッチョイ afd8-0lSL)
2025/07/01(火) 20:42:58.47ID:4QEmYdel0 >>880
A 付きの API は OS が変換するよ。
ファイルの読み書きもロケールの設定によっては変換する。
わかりやすく観測しやすい例としてはファイル名は変換してる。
そもそも NTFS の規格からしてファイル名は Unicode が前提だし。
A 付きの API は OS が変換するよ。
ファイルの読み書きもロケールの設定によっては変換する。
わかりやすく観測しやすい例としてはファイル名は変換してる。
そもそも NTFS の規格からしてファイル名は Unicode が前提だし。
884デフォルトの名無しさん (ワッチョイ 5ffc-4xcB)
2025/07/01(火) 20:43:09.72ID:M5z4vIa80 >>879
あ、ちなみにコピペなら、あれはアプリ側がやってるらしいぞ。
例えばメモ帳でSJISファイル開いて、Ctrl-C、その後utf-8の別アプリ(メモ帳でもいい)でCtrl-Vしたとき、
正しくコピペされる(=文字化けしない)が、これはアプリが対応してるかららしい。
ソースは、以前、対応してないアプリがあって、コピペが上手く機能しなかったとき、
「Windowsのメモ帳ですら対応してるのに、なんだこの糞アプリはッ!!!とブチ切れてた奴を見たから。
OSがやってくれてるのならこうはならない。
あ、ちなみにコピペなら、あれはアプリ側がやってるらしいぞ。
例えばメモ帳でSJISファイル開いて、Ctrl-C、その後utf-8の別アプリ(メモ帳でもいい)でCtrl-Vしたとき、
正しくコピペされる(=文字化けしない)が、これはアプリが対応してるかららしい。
ソースは、以前、対応してないアプリがあって、コピペが上手く機能しなかったとき、
「Windowsのメモ帳ですら対応してるのに、なんだこの糞アプリはッ!!!とブチ切れてた奴を見たから。
OSがやってくれてるのならこうはならない。
885デフォルトの名無しさん (ワッチョイ 5ffc-4xcB)
2025/07/01(火) 20:56:30.50ID:M5z4vIa80886デフォルトの名無しさん (オイコラミネオ MM6b-fGW2)
2025/07/01(火) 22:22:40.31ID:0+2Ys+XXM887デフォルトの名無しさん (ワッチョイ 62ad-hyNN)
2025/07/02(水) 04:17:04.40ID:ZRfP3NsY0 phpやアプリで入力された文字をwebアプリで扱う話
なのか
メモ帳みたいにwindows固有のShift_Sisでの文字の処理の話
なのか
なのか
メモ帳みたいにwindows固有のShift_Sisでの文字の処理の話
なのか
888デフォルトの名無しさん (ワッチョイ 5fcb-4xcB)
2025/07/02(水) 05:01:21.76ID:kZMPfHAD0 文字コードとプログラミング言語の区別が付いてないゆとりZが、
「ぼくのさいこうのせきゅりてぃ!!!」を語って馬鹿にされただけの話
ついでに考えてみたが、Windowsの場合はファイル読み込み時に変換かけ、
CLR上のStringも、C#のStringも、またWindows上のStringも、全てutf-16、という美しい世界なのだろうが、
これだと同様にクリップボード上のテキストもutf-16だと思われ、文字化けする理由が分からん
(俺が遭遇した物はエンコーディングによってコピペが出来たり出来なかったりしてた《ように見えた》)
なおWin10以降はutf-8を目指しているのかも?
https://www.momopoem.com/?p=919
とはいえ、Cの話ではないな
unicodeスレでやれってこった
(あるのかは知らんが、スレがあってもおかしくない程度にはunicodeは複雑)
「ぼくのさいこうのせきゅりてぃ!!!」を語って馬鹿にされただけの話
ついでに考えてみたが、Windowsの場合はファイル読み込み時に変換かけ、
CLR上のStringも、C#のStringも、またWindows上のStringも、全てutf-16、という美しい世界なのだろうが、
これだと同様にクリップボード上のテキストもutf-16だと思われ、文字化けする理由が分からん
(俺が遭遇した物はエンコーディングによってコピペが出来たり出来なかったりしてた《ように見えた》)
なおWin10以降はutf-8を目指しているのかも?
https://www.momopoem.com/?p=919
とはいえ、Cの話ではないな
unicodeスレでやれってこった
(あるのかは知らんが、スレがあってもおかしくない程度にはunicodeは複雑)
889デフォルトの名無しさん
2025/07/02(水) 06:16:59.91ID:5Jo8M0S90 内部表現がUTF16LEであって、表面上はシステムで設定した文字コードってだけの話だよ
日本語環境だとデフォルトS-JISだったのをWindows10の途中からutf-8にした(ユーザ側で変更は可能)
メモ帳もデフォルトがutf-8になった
クリップボード上のテキストはアプリケーションがクリップボードにデータを預ける
その預けるデータ形式に読み取り側が対応していないと機能しないと言うだけ
シンプルなテキスト形式ならCF_TEXTがANSIでCF_UNICODETEXTがUTF16LEになる
CF_TEXTにしか対応していないか、両方対応しているけどANSI優先させてしまっている場合(ないと思うが)になら環境依存文字が文字化けすることもある
日本語環境だとデフォルトS-JISだったのをWindows10の途中からutf-8にした(ユーザ側で変更は可能)
メモ帳もデフォルトがutf-8になった
クリップボード上のテキストはアプリケーションがクリップボードにデータを預ける
その預けるデータ形式に読み取り側が対応していないと機能しないと言うだけ
シンプルなテキスト形式ならCF_TEXTがANSIでCF_UNICODETEXTがUTF16LEになる
CF_TEXTにしか対応していないか、両方対応しているけどANSI優先させてしまっている場合(ないと思うが)になら環境依存文字が文字化けすることもある
890デフォルトの名無しさん (ワッチョイ bb95-aEED)
2025/07/02(水) 08:07:25.64ID:c2tqUwxf0 わからんことはもうAIに聞いたら教えてくれるのに
891デフォルトの名無しさん (ワッチョイ 7f7b-4xcB)
2025/07/02(水) 08:13:07.97ID:pWg0Xl5Z0 >>889
了解した。
API見る限り、一つのクリップボードに複数のデータ形式を登録でき、しかも自動変換まで行ってくれるのだから、
CF_UNICODETEXTだけ対応しておけば文字化けはほぼ無くなるので、彼が糞アプリ具合にキレたのも分かった。
> システムは、特定のクリップボード形式間でデータを暗黙的に変換します。
> ウィンドウがクリップボードにない形式でデータを要求した場合、システムは使用可能な形式を要求された形式に変換します。
> https://learn.microsoft.com/ja-jp/windows/win32/dataxchg/clipboard-formats
> クリップボードの形式 変換形式
> (中略)
> CF_TEXT CF_UNICODETEXT
> (中略)
> CF_UNICODETEXT CF_TEXT
了解した。
API見る限り、一つのクリップボードに複数のデータ形式を登録でき、しかも自動変換まで行ってくれるのだから、
CF_UNICODETEXTだけ対応しておけば文字化けはほぼ無くなるので、彼が糞アプリ具合にキレたのも分かった。
> システムは、特定のクリップボード形式間でデータを暗黙的に変換します。
> ウィンドウがクリップボードにない形式でデータを要求した場合、システムは使用可能な形式を要求された形式に変換します。
> https://learn.microsoft.com/ja-jp/windows/win32/dataxchg/clipboard-formats
> クリップボードの形式 変換形式
> (中略)
> CF_TEXT CF_UNICODETEXT
> (中略)
> CF_UNICODETEXT CF_TEXT
892デフォルトの名無しさん (ワッチョイ 5fef-4xcB)
2025/07/02(水) 09:02:06.13ID:kZMPfHAD0893デフォルトの名無しさん (ワッチョイ ff02-Q0Sn)
2025/07/06(日) 09:24:52.33ID:jyZjYPic0894デフォルトの名無しさん (ササクッテロ Sp0b-5BqU)
2025/07/06(日) 11:52:20.38ID:v3CN8ECgp 英語圏から見たら一文字に32bitも使うなんて勿体無いと思う
895デフォルトの名無しさん (ワッチョイ bffc-3agI)
2025/07/06(日) 12:26:15.50ID:WJe1asKY0 emoji全盛なので英語圏は~という見方は時代遅れ
896デフォルトの名無しさん (ワッチョイ 1fb9-nrVI)
2025/07/06(日) 13:29:05.42ID:OCq4/vpt0 アスキーコードは0の¥0から127のDELまでしか使ってないのだから絵文字も1バイト内に収められそう
897デフォルトの名無しさん (ワッチョイ b75f-5BqU)
2025/07/06(日) 13:49:41.25ID:WoCgxATG0 128からは北欧やロシア特有の文字で埋められているからなぁ
898デフォルトの名無しさん (ワッチョイ 9757-1drH)
2025/07/06(日) 14:21:04.82ID:Zx51jGf/0 >>893
おお、utf-32の実装例が有ったか
しかしcpython(1991)に対しサロゲートペア導入(1996)なので、
utf-16ではなくutf-32にしたのは謎だな
先見の明があったのか、(その頃既にunicodeが枯渇気味なのを知っていたとか?)
或いはサロゲートペア対応時にutf-16→utf-32に書き換えたのか?
おお、utf-32の実装例が有ったか
しかしcpython(1991)に対しサロゲートペア導入(1996)なので、
utf-16ではなくutf-32にしたのは謎だな
先見の明があったのか、(その頃既にunicodeが枯渇気味なのを知っていたとか?)
或いはサロゲートペア対応時にutf-16→utf-32に書き換えたのか?
899デフォルトの名無しさん (アークセー Sx0b-3iNM)
2025/07/06(日) 14:23:19.54ID:WPORaY9rx iモードの絵文字:271文字
Unicodeの絵文字:約4000文字
合字を含めると10万文字以上
(英字2字から国旗を生成する、
人物の肌の色や髪型を指定する、
「カップル」や最大4人の「家族」を1人ごとに
大人・子供、男女、肌の色、髪型を指定する等)
Appleの絵文字:
自由な文章や顔写真などからAIが生成するため
組み合わせは無限大
(例:自撮り画像を用意して
「サーフィンをする俺」
と指定すれば、写真の数だけ絵文字ができる)
Unicodeの絵文字:約4000文字
合字を含めると10万文字以上
(英字2字から国旗を生成する、
人物の肌の色や髪型を指定する、
「カップル」や最大4人の「家族」を1人ごとに
大人・子供、男女、肌の色、髪型を指定する等)
Appleの絵文字:
自由な文章や顔写真などからAIが生成するため
組み合わせは無限大
(例:自撮り画像を用意して
「サーフィンをする俺」
と指定すれば、写真の数だけ絵文字ができる)
900デフォルトの名無しさん (ワッチョイ ff02-Q0Sn)
2025/07/06(日) 19:24:09.13ID:jyZjYPic0901デフォルトの名無しさん (ワッチョイ bf93-zfaq)
2025/07/06(日) 20:24:06.04ID:fLXWuAJ/0 Qiitaの『[入門] C/C++ 知っておくべきポインタの由来 ISO標準のメモリモデル徹底解説』
この記事のおかしいとこ適切に指摘できる程度の知識ある人がなんか言うべき。
この記事のおかしいとこ適切に指摘できる程度の知識ある人がなんか言うべき。
902デフォルトの名無しさん (ワッチョイ ff22-wwUg)
2025/07/06(日) 20:42:05.76ID:+cQ8VLBs0 最初にコメントした人も言ってる通り、内容を精査せずにポストしてる AI 生成記事のようであり、
細部のコメントを受けての修正も根本的なところ(そもそもサンプルコードを含む記事の大部分が
provenance と関係ない)を放置して指摘点だけをどうにか直すにとどまっていて、
これもおそらく AI にやらせていそうで、真面目に付き合う気にならない。
細部のコメントを受けての修正も根本的なところ(そもそもサンプルコードを含む記事の大部分が
provenance と関係ない)を放置して指摘点だけをどうにか直すにとどまっていて、
これもおそらく AI にやらせていそうで、真面目に付き合う気にならない。
903デフォルトの名無しさん (ワッチョイ bf64-3agI)
2025/07/06(日) 21:06:32.37ID:WJe1asKY0 最初のコメントの方がずれたこと言ってると思ったわ
904デフォルトの名無しさん (ワッチョイ 9774-1drH)
2025/07/06(日) 23:42:52.85ID:Zx51jGf/0905デフォルトの名無しさん (ワッチョイ bf5f-Wka8)
2025/07/06(日) 23:58:42.87ID:qwZeW1Ya0 >>897
ひらがなとカタカナ、あとはトランプのマークとかだよ
ひらがなとカタカナ、あとはトランプのマークとかだよ
906デフォルトの名無しさん (ワッチョイ b75f-5BqU)
2025/07/07(月) 00:57:35.46ID:nJ1e9eHr0 >>905
はいはい、日本向けはな
はいはい、日本向けはな
907デフォルトの名無しさん (ワッチョイ bf5f-Wka8)
2025/07/07(月) 02:30:49.89ID:RcHVNtjG0 >>906
念のために言っておくと、ISO 8859 はうんこ規格やぞ
念のために言っておくと、ISO 8859 はうんこ規格やぞ
908デフォルトの名無しさん (ワッチョイ 97a9-1drH)
2025/07/07(月) 04:46:06.48ID:j3T7OhEz0 >>901
ついでに言っておくとな、
> この記事のおかしいとこ適切に指摘できる程度の知識ある人がなんか言うべき。
=「ばかなゆとりZのためにゆうしきしゃはどりょくすべき」と言っているのであって、
一体何様のつもりだ?であり、こんな事言える時点で相手に対するHRTの欠片もない。
Qiitaの連中はHRTを「『ぼくに』ひどいこといわないこと」と捉えてるようだが、
正しくは「『相手に』対する」姿勢であって、
相手に対してHRTがあるのなら、わざわざしょうもない事で手間をかけさせる事は恐縮なはずだから、
有識者は、堂々と馬鹿を無視して見殺しにするのが、HRTの趣旨に則ってる。
(現実的に、無限に沸く馬鹿全員に構うのは無理だし)
そもそもQiitaは「正しい情報が発信される」プラットフォームではなくて、
「各々が自由に発信出来る場所」であり、「正しいかどうかは読者の判断に委ねられる」(=民主主義)
だから、
× 間違いを正す努力をする
○ 正しい情報を自己で発信し直して、間違ってる情報を上書きする
○ 何らかのレーティング機構をつくり、正しい情報に辿り着きやすくする
方向で努力すべき場所だと思うよ。
(だから「悪い記事」ではなく「良い記事」を探せ、となるわけでね)
ついでに言っておくとな、
> この記事のおかしいとこ適切に指摘できる程度の知識ある人がなんか言うべき。
=「ばかなゆとりZのためにゆうしきしゃはどりょくすべき」と言っているのであって、
一体何様のつもりだ?であり、こんな事言える時点で相手に対するHRTの欠片もない。
Qiitaの連中はHRTを「『ぼくに』ひどいこといわないこと」と捉えてるようだが、
正しくは「『相手に』対する」姿勢であって、
相手に対してHRTがあるのなら、わざわざしょうもない事で手間をかけさせる事は恐縮なはずだから、
有識者は、堂々と馬鹿を無視して見殺しにするのが、HRTの趣旨に則ってる。
(現実的に、無限に沸く馬鹿全員に構うのは無理だし)
そもそもQiitaは「正しい情報が発信される」プラットフォームではなくて、
「各々が自由に発信出来る場所」であり、「正しいかどうかは読者の判断に委ねられる」(=民主主義)
だから、
× 間違いを正す努力をする
○ 正しい情報を自己で発信し直して、間違ってる情報を上書きする
○ 何らかのレーティング機構をつくり、正しい情報に辿り着きやすくする
方向で努力すべき場所だと思うよ。
(だから「悪い記事」ではなく「良い記事」を探せ、となるわけでね)
909デフォルトの名無しさん (ワッチョイ 37c8-LDc0)
2025/07/07(月) 08:30:34.74ID:CtlI/jIL0 >>908
レーティングとかやったとしても、正しい記事はそれほどレート上がらず、きちんと見ると少しおかしいけど初心者受けする記事に高レート集まるから無駄
レーティングとかやったとしても、正しい記事はそれほどレート上がらず、きちんと見ると少しおかしいけど初心者受けする記事に高レート集まるから無駄
910デフォルトの名無しさん (ワッチョイ 977b-1drH)
2025/07/07(月) 08:46:23.49ID:byi8B4NP0 >>909
「初心者」を含む「人気投票」ベースのレーティングをやったらそうなる
だから例えば、正しい記事を正確に判断出来る「有識者」だけでレーティングすれば、少なくともゴミ記事はすぐ除外出来るだろ
(ただこれはQiitaの連中には出来ない事なのだろうけど、
少なくともStackOverflowは上手くやってるんだから、何かしらやり方はあるのだろうよ)
「初心者」を含む「人気投票」ベースのレーティングをやったらそうなる
だから例えば、正しい記事を正確に判断出来る「有識者」だけでレーティングすれば、少なくともゴミ記事はすぐ除外出来るだろ
(ただこれはQiitaの連中には出来ない事なのだろうけど、
少なくともStackOverflowは上手くやってるんだから、何かしらやり方はあるのだろうよ)
911デフォルトの名無しさん (ワッチョイ 9ff3-4Q3H)
2025/07/07(月) 10:11:19.66ID:yOeC9ZKg0 全ての暗号化一瞬で解読される
京大、マクロな世界で時間が過去から未来へと一方向に流れる謎に迫る発見
掲載日
2025/07/07 09:33
https://news.mynavi.jp/techplus/article/20250707-3373082/
これが成功したら一瞬で計算できるでしょう
1 計算を始めた段階から未来では完了している結果が表示される
2 結果が表示された結果を現在に戻せば計算結果のみが表示される
3結果的に一瞬で計算できているように観測される
京大、マクロな世界で時間が過去から未来へと一方向に流れる謎に迫る発見
掲載日
2025/07/07 09:33
https://news.mynavi.jp/techplus/article/20250707-3373082/
これが成功したら一瞬で計算できるでしょう
1 計算を始めた段階から未来では完了している結果が表示される
2 結果が表示された結果を現在に戻せば計算結果のみが表示される
3結果的に一瞬で計算できているように観測される
912デフォルトの名無しさん (ワッチョイ 9ff3-4Q3H)
2025/07/07(月) 10:15:31.37ID:yOeC9ZKg0 人間と同じように考え、次にとる行動を再現する最新AIモデル「ケンタウロス」
公開: 2025-07-06 20:00
http://karapaia.com/archives/523201.html
>>ドイツのヘルムホルツ・ミュンヘン研究所のチームが開発した
>>新しいAI言語モデル「ケンタウロス(Centaur)」は、
★>> 160の心理学実験に参加した6万人以上の人々が行った1000万件を超える意思決定データを学習している。
>>『Nature』(2025年7月2日付)に掲載された。
★>> AIケンタウロスの力があれば、たとえば不安症やうつ病など、精神疾患のある人の意思決定プロセスをシミュレーションすることで、その行動や心の動きを深めることができるという
>> 研究チームは今後、年齢や性格などの心理的・人口統計的特性もデータセットに組み込んでいく予定だそうだ。
★ >>医療・政策設計・社会科学など、人間の意思決定が重要になる幅広い分野で活用できると期待されている。
公開: 2025-07-06 20:00
http://karapaia.com/archives/523201.html
>>ドイツのヘルムホルツ・ミュンヘン研究所のチームが開発した
>>新しいAI言語モデル「ケンタウロス(Centaur)」は、
★>> 160の心理学実験に参加した6万人以上の人々が行った1000万件を超える意思決定データを学習している。
>>『Nature』(2025年7月2日付)に掲載された。
★>> AIケンタウロスの力があれば、たとえば不安症やうつ病など、精神疾患のある人の意思決定プロセスをシミュレーションすることで、その行動や心の動きを深めることができるという
>> 研究チームは今後、年齢や性格などの心理的・人口統計的特性もデータセットに組み込んでいく予定だそうだ。
★ >>医療・政策設計・社会科学など、人間の意思決定が重要になる幅広い分野で活用できると期待されている。
913デフォルトの名無しさん (アウアウウー Sa9b-zcFv)
2025/07/07(月) 10:52:50.66ID:4TSfZIZxa 900
旧
unicodestring=u'hogehoge'
(bytes)string='hogehoge'
現
string='hogehoge'(旧unicodestring)
bytes=b'hogehoge'(旧string)
旧
unicodestring=u'hogehoge'
(bytes)string='hogehoge'
現
string='hogehoge'(旧unicodestring)
bytes=b'hogehoge'(旧string)
914デフォルトの名無しさん (アウアウウー Sa9b-zcFv)
2025/07/07(月) 11:00:30.19ID:4TSfZIZxa 911
面白い記事thx
面白い記事thx
915はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3732-SRy/)
2025/07/07(月) 13:14:06.42ID:NDz1f/gp0 >>910
StackOverflow は信用度に応じて特権が解放される仕組みになってる。
特権の中には (良し悪しの投票とは別に) 削除すべきかどうか投票する権限が含まれるよ。
これは攻撃や露骨な異常に対処するための権限であってレーティングではないけど。
削除票権限を得られる信用度 2000 というのがどれくらいかよくわからんけど、たぶんまともな投稿が百個分くらいだと思う。
そんなに高いハードルではない。
StackOverflow は信用度に応じて特権が解放される仕組みになってる。
特権の中には (良し悪しの投票とは別に) 削除すべきかどうか投票する権限が含まれるよ。
これは攻撃や露骨な異常に対処するための権限であってレーティングではないけど。
削除票権限を得られる信用度 2000 というのがどれくらいかよくわからんけど、たぶんまともな投稿が百個分くらいだと思う。
そんなに高いハードルではない。
916デフォルトの名無しさん (ワッチョイ 97cb-1drH)
2025/07/08(火) 07:51:29.50ID:O7MIelA50 >>915
いや俺が言ってる「レーティング」は、StackOverflowのそもそもの仕組み、
一つの質問に対して複数の回答がup/downvoteで競う、というシステムの事だ。
ただup/downvote方式は他、例えばYouTube、FaceBook、Reddit等でも使われていた、
かなりありふれた仕組みだが、大体常に不正投票で荒らされる。
その「削除票」はおそらく「不正投票で上位に持ってこられたゴミ」の削除を諮るもので、
仕組み上、up/downvote権は削除票権よりも低い。(はず)
事実として、StackOverflowのレーティングは完全に機能してる。
対して、他サイトのレーティング機能は大体おかしな事になっており、vote自体を止める/見えなくしてるのが大半だ。
他サイトは「誰でも投票出来る」から機能してないのはまあ自明で、
StackOverflowは「投票権」の管理が上手いのだろう。
Qiitaは「誰でも発信出来る」仕組み上、ほぼ全部がゴミになるのは仕様だ。
これは「有識者のみに発信権を絞り、質を上げる」と対極の、
「ゴミにも発信させる事により、裾野を著しく拡大させ、結果的に山頂も高くなる」であり、
典型的な「数撃ちゃ当たる」戦略なので、Qiitaの意思を尊重するなら、「割合」なんて無視すべきで、
「山頂の高さ」「(一定の質以上の)使える記事の『絶対数』」(重ねていうが「使える記事の『割合』」ではない)
だけを問題にすべきだ。
ただ実際の所は「高さ」も「使える数」もゴミだから悪く言われてるのだとも思う。
とはいえ、ゴミ含めた「数」だけは有るのだから、StackOverflowモドキも出来るはずだ。
いや俺が言ってる「レーティング」は、StackOverflowのそもそもの仕組み、
一つの質問に対して複数の回答がup/downvoteで競う、というシステムの事だ。
ただup/downvote方式は他、例えばYouTube、FaceBook、Reddit等でも使われていた、
かなりありふれた仕組みだが、大体常に不正投票で荒らされる。
その「削除票」はおそらく「不正投票で上位に持ってこられたゴミ」の削除を諮るもので、
仕組み上、up/downvote権は削除票権よりも低い。(はず)
事実として、StackOverflowのレーティングは完全に機能してる。
対して、他サイトのレーティング機能は大体おかしな事になっており、vote自体を止める/見えなくしてるのが大半だ。
他サイトは「誰でも投票出来る」から機能してないのはまあ自明で、
StackOverflowは「投票権」の管理が上手いのだろう。
Qiitaは「誰でも発信出来る」仕組み上、ほぼ全部がゴミになるのは仕様だ。
これは「有識者のみに発信権を絞り、質を上げる」と対極の、
「ゴミにも発信させる事により、裾野を著しく拡大させ、結果的に山頂も高くなる」であり、
典型的な「数撃ちゃ当たる」戦略なので、Qiitaの意思を尊重するなら、「割合」なんて無視すべきで、
「山頂の高さ」「(一定の質以上の)使える記事の『絶対数』」(重ねていうが「使える記事の『割合』」ではない)
だけを問題にすべきだ。
ただ実際の所は「高さ」も「使える数」もゴミだから悪く言われてるのだとも思う。
とはいえ、ゴミ含めた「数」だけは有るのだから、StackOverflowモドキも出来るはずだ。
917デフォルトの名無しさん (ワッチョイ 97cb-1drH)
2025/07/08(火) 07:52:15.52ID:O7MIelA50 例えば、"How to deal with utf-8 in C"でググると以下が先頭に来るわけだが、
> C programming: How can I program for Unicode?
> https://stackoverflow.com/questions/526430/c-programming-how-can-i-program-for-unicode
これと同様に、Qiitaでも"utfをCで扱う記事"を探してきて、良い順にリスト化して表示する事は出来るはず。
まあ単なるSearch機能だが、公式には新着順/関連順/ストック数順/いいね数順しかない。
ここに「評価順」を入れられればいいだけだが、『みんな一等賞』なゆとり価値観では拒絶されるので存在出来ない。
だから外部から補うとしたらここなのだ。
ゴミを列挙したところで、或いはチマチマとゴミの訂正をしたところで、さらに無限に沸いてくるゴミに押し流されるだけだ。
人数は圧倒的に初心者>>>有識者なのだから、手数で勝負したらどうにもならない。
Qiitaのことを思うなら、或いはQiitaの戦略を尊重するなら、
指摘なんて無意味な事はせず、
ただ淡々と、「△△記事より○○記事の方が『上』『下』」と、レーティングのみに徹すればいいのだ。
そしてその理由付け、「○○だからこの記事の方がいい」なんて説明も時間の無駄でしかないからやらなくていい。
実際、書いてる奴はそれで最高と思ってるからその記事になってるわけであり、何を言ったところで通じないし、
また実際、StackOverflowでも単純な「最終スコア」だけで完全に機能してるだろ。
(だからQiitaスレの連中も、やってる事は大幅に勘違いしてる)
> C programming: How can I program for Unicode?
> https://stackoverflow.com/questions/526430/c-programming-how-can-i-program-for-unicode
これと同様に、Qiitaでも"utfをCで扱う記事"を探してきて、良い順にリスト化して表示する事は出来るはず。
まあ単なるSearch機能だが、公式には新着順/関連順/ストック数順/いいね数順しかない。
ここに「評価順」を入れられればいいだけだが、『みんな一等賞』なゆとり価値観では拒絶されるので存在出来ない。
だから外部から補うとしたらここなのだ。
ゴミを列挙したところで、或いはチマチマとゴミの訂正をしたところで、さらに無限に沸いてくるゴミに押し流されるだけだ。
人数は圧倒的に初心者>>>有識者なのだから、手数で勝負したらどうにもならない。
Qiitaのことを思うなら、或いはQiitaの戦略を尊重するなら、
指摘なんて無意味な事はせず、
ただ淡々と、「△△記事より○○記事の方が『上』『下』」と、レーティングのみに徹すればいいのだ。
そしてその理由付け、「○○だからこの記事の方がいい」なんて説明も時間の無駄でしかないからやらなくていい。
実際、書いてる奴はそれで最高と思ってるからその記事になってるわけであり、何を言ったところで通じないし、
また実際、StackOverflowでも単純な「最終スコア」だけで完全に機能してるだろ。
(だからQiitaスレの連中も、やってる事は大幅に勘違いしてる)
918デフォルトの名無しさん (ワッチョイ bf64-3agI)
2025/07/08(火) 08:08:11.05ID:JNTp8eI40 なげーよ読むかよこんなの
AIで要約して貼れ
AIで要約して貼れ
919デフォルトの名無しさん (ワッチョイ ff69-wwUg)
2025/07/08(火) 08:18:34.49ID:F/ieIm2L0 Gitスレに居た長文君でしょ。相変わらずのスタイルでスレ違いの話をつづけるなら個人スレッドに帰ってくれ。
ついでにWitBucketの進捗報告してくれてもいいぞ。
https://mevius.5ch.net/test/read.cgi/tech/1668901194/
ついでにWitBucketの進捗報告してくれてもいいぞ。
https://mevius.5ch.net/test/read.cgi/tech/1668901194/
920デフォルトの名無しさん (ワッチョイ bfdb-zfaq)
2025/07/08(火) 10:09:50.64ID:ntbrUw/V0 >(だからQiitaスレの連中も、やってる事は大幅に勘違いしてる)
勘違いしてるのはお前w
Qiitaスレはクソ記事を面白がってるだけww
勘違いしてるのはお前w
Qiitaスレはクソ記事を面白がってるだけww
921デフォルトの名無しさん (ワッチョイ ff02-Q0Sn)
2025/07/08(火) 10:43:13.18ID:ub1Gvu250 もうそういう外の事はいいから、外でやれよ
922デフォルトの名無しさん (スフッ Sdbf-zcFv)
2025/07/08(火) 10:58:14.52ID:Lf/Jcjxkd ゴミにも発信させる事により、裾野を著しく拡大させ、結果的に山頂は低くなる
923デフォルトの名無しさん (ワッチョイ 9f67-OtQU)
2025/07/08(火) 12:03:22.01ID:eAX1Pc590924デフォルトの名無しさん (ワッチョイ 977b-1drH)
2025/07/09(水) 07:17:02.60ID:0pqx6ome0 >>920
お前にはそう見えると理解した。
>>922
現状のQiitaはその通り。
ただ、OSS、Pixiv、なろう、YouTube、Webサイト、アプリ、等々、(多分5chの書き込みも、)
「どんなゴミでも公開するのは自由」という戦略で成功してる例は多々ある。
Qiitaで上手く行かない理由はよく分からん。
それはさておき、以下とか見てみたが、
> https://stackoverflow.com/questions/21737906/how-to-read-write-utf8-text-files-in-c
> https://src.nafod.net/glibc-2.35/glibc/libio/getwc.c.html
setlocaleすればwc関数が使えて、おそらくlocale毎に切り替えられてる関数群を呼ぶ、といったところか?
ならutf-8に決め打ちして高速化するRustの戦略の方が妥当なのかもしれんな。
お前にはそう見えると理解した。
>>922
現状のQiitaはその通り。
ただ、OSS、Pixiv、なろう、YouTube、Webサイト、アプリ、等々、(多分5chの書き込みも、)
「どんなゴミでも公開するのは自由」という戦略で成功してる例は多々ある。
Qiitaで上手く行かない理由はよく分からん。
それはさておき、以下とか見てみたが、
> https://stackoverflow.com/questions/21737906/how-to-read-write-utf8-text-files-in-c
> https://src.nafod.net/glibc-2.35/glibc/libio/getwc.c.html
setlocaleすればwc関数が使えて、おそらくlocale毎に切り替えられてる関数群を呼ぶ、といったところか?
ならutf-8に決め打ちして高速化するRustの戦略の方が妥当なのかもしれんな。
925デフォルトの名無しさん (ワッチョイ 37bb-zfaq)
2025/07/09(水) 19:10:52.61ID:2nUeM8hP0 > Qiitaで上手く行かない理由はよく分からん。
Qiitaはマサカリを通報できるシステムと苦情は悪と捉える運営との相乗効果でいまの惨状だろw
Qiitaはマサカリを通報できるシステムと苦情は悪と捉える運営との相乗効果でいまの惨状だろw
926デフォルトの名無しさん (ワッチョイ 1f63-LDc0)
2025/07/09(水) 20:25:09.49ID:owLuLYBV0 qiitaスレでやれ
927デフォルトの名無しさん (ワッチョイ 9779-1drH)
2025/07/09(水) 22:19:48.88ID:X9OMVJLS0928デフォルトの名無しさん (ワッチョイ 9f0c-4Q3H)
2025/07/10(木) 05:42:35.42ID:qeCO91fI0 ・事件を起こしたオウムしんりきょう幹部反社会のソシオパスではないか?!
知能が高い人ほど、道徳心のスコアが低くなっていた
2025.07.09 07:00:09 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/181131
>>英国エディンバラ大学(The University of Edinburgh)の最新研究によると、認知能力が高い人ほど、道徳的価値観を全体的に弱く支持する傾向があることを明らかになったのです。
>>道徳心には「6つの基盤」がある
>>@ 思いやり/危害(Care / Harm)
>>A 公平さ/不正(Fairness / Cheating)
>>B 忠誠/裏切り(Loyalty / Betrayal)
>>C 権威/転覆(Authority / Subversion)
>>D 純潔/堕落(Sanctity / Degradation)
>>E 自由/抑圧(Liberty / Oppression)
>>これらは「道徳心のセンサー」のようなものであり、文化や時代を超えて人類に共通する心理的傾向です。
>>政治的立場によっても傾向が分かれ、リベラルな人は「思いやり」や「公平さ」を強く支持し、保守的な人は6つすべてを重視する傾向があると指摘されています。
>>結果、興味深いことに、知能が高い人ほど、6つすべての道徳基盤のスコアが一様に低くなるという驚きの結果が得られたのです。
>>とくに顕著だったのは、「純潔」基盤との関係で、言語的知能が高い人ほど、「心や体は神聖なものだ」といった伝統的な価値観に共感しにくい傾向が見られました。
>>道徳的判断を“直感”ではなく“分析”でとらえる傾向がある」と指摘します。
>>たとえば「これは悪いことだ」と即断する代わりに、「それは誰にどんな影響があるのか?」「文脈によっては正当化されるのでは?」と一歩引いて考えてしまうのです。
知能が高い人ほど、道徳心のスコアが低くなっていた
2025.07.09 07:00:09 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/181131
>>英国エディンバラ大学(The University of Edinburgh)の最新研究によると、認知能力が高い人ほど、道徳的価値観を全体的に弱く支持する傾向があることを明らかになったのです。
>>道徳心には「6つの基盤」がある
>>@ 思いやり/危害(Care / Harm)
>>A 公平さ/不正(Fairness / Cheating)
>>B 忠誠/裏切り(Loyalty / Betrayal)
>>C 権威/転覆(Authority / Subversion)
>>D 純潔/堕落(Sanctity / Degradation)
>>E 自由/抑圧(Liberty / Oppression)
>>これらは「道徳心のセンサー」のようなものであり、文化や時代を超えて人類に共通する心理的傾向です。
>>政治的立場によっても傾向が分かれ、リベラルな人は「思いやり」や「公平さ」を強く支持し、保守的な人は6つすべてを重視する傾向があると指摘されています。
>>結果、興味深いことに、知能が高い人ほど、6つすべての道徳基盤のスコアが一様に低くなるという驚きの結果が得られたのです。
>>とくに顕著だったのは、「純潔」基盤との関係で、言語的知能が高い人ほど、「心や体は神聖なものだ」といった伝統的な価値観に共感しにくい傾向が見られました。
>>道徳的判断を“直感”ではなく“分析”でとらえる傾向がある」と指摘します。
>>たとえば「これは悪いことだ」と即断する代わりに、「それは誰にどんな影響があるのか?」「文脈によっては正当化されるのでは?」と一歩引いて考えてしまうのです。
929デフォルトの名無しさん (ワッチョイ 9f80-4Q3H)
2025/07/10(木) 17:19:45.48ID:qeCO91fI0 AMDが画像生成AI「Nitro-T」をリリース、32基のInstinct MI300Xでゼロから1日未満でトレーニング可能
https://gigazine.net/news/20250710-amd-nitro-t-text-to-image-diffusion-model/
https://gigazine.net/news/20250710-amd-nitro-t-text-to-image-diffusion-model/
930デフォルトの名無しさん (ワッチョイ b75f-5BqU)
2025/07/11(金) 09:57:27.27ID:5e8y0W0s0 買収したXilinx社の技術だよな?
931デフォルトの名無しさん (ワッチョイ 625f-Booz)
2025/07/15(火) 00:15:52.37ID:o1+ac6ll0 C言語で 普段使いに便利な文字列操作ライブラリってある?
文字列をどんどん連結したりとか削ったりとか
文字列をどんどん連結したりとか削ったりとか
932はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-2YuX)
2025/07/15(火) 08:57:02.20ID:4vwHJR320933デフォルトの名無しさん (スッップ Sd70-nXfN)
2025/07/15(火) 10:49:36.01ID:QW8BQCbdd libcかglib
934デフォルトの名無しさん (ワッチョイ c753-vUgR)
2025/07/15(火) 14:58:33.62ID:3gCahPAd0935デフォルトの名無しさん (ワッチョイ cea2-YjA1)
2025/07/15(火) 19:32:43.03ID:bNwJ5JYx0 電子は動かず『電子のスピンだけ』が流れて情報伝達できる微小チップを開発
2025.07.15 TUE
https://nazology.kusuguru.co.jp/archives/181574
蘭デルフト工科大は電子自身ではなく電子のスピン状態のみが流れて情報を運ぶ『スピン流』を起こせる微小チップを開発したと発表。チップは電子があっても電子が流れないため熱のロスが大幅に減少します
2025.07.15 TUE
https://nazology.kusuguru.co.jp/archives/181574
蘭デルフト工科大は電子自身ではなく電子のスピン状態のみが流れて情報を運ぶ『スピン流』を起こせる微小チップを開発したと発表。チップは電子があっても電子が流れないため熱のロスが大幅に減少します
936デフォルトの名無しさん (ワッチョイ ce5b-YjA1)
2025/07/16(水) 05:03:32.70ID:4tPm3gKv0 宇宙誕生直後の数兆度の「宇宙のスープ」を再現――濃厚な後味を探る
2025.07.15 TUE
https://nazology.kusuguru.co.jp/archives/181596
↓昔はよく見えた人魂が見えたので幽霊と勘違いし↓
雷の玉⁈ 謎の自然現象「ボールライトニング」をカナダで観測
2025.07.14 MON
https://nazology.kusuguru.co.jp/archives/181422
臨死体験の正体は死ぬ間際の「爆発的な脳活動」だった
2025.05.03 SAT
https://nazology.kusuguru.co.jp/archives/125749
>>患者たちの脳の意識や思考、記憶にかかわる脳領域において、死ぬ直前に主にガンマ波からなる「爆発的な脳活動」が起きていることが判明しました。
>>同様の脳活動パターンは夢や幻覚を見ているときや、幽体離脱を経験している患者たちで観察されるものと酷似していたとのこと。
※天国や地獄は無い!
2025.07.15 TUE
https://nazology.kusuguru.co.jp/archives/181596
↓昔はよく見えた人魂が見えたので幽霊と勘違いし↓
雷の玉⁈ 謎の自然現象「ボールライトニング」をカナダで観測
2025.07.14 MON
https://nazology.kusuguru.co.jp/archives/181422
臨死体験の正体は死ぬ間際の「爆発的な脳活動」だった
2025.05.03 SAT
https://nazology.kusuguru.co.jp/archives/125749
>>患者たちの脳の意識や思考、記憶にかかわる脳領域において、死ぬ直前に主にガンマ波からなる「爆発的な脳活動」が起きていることが判明しました。
>>同様の脳活動パターンは夢や幻覚を見ているときや、幽体離脱を経験している患者たちで観察されるものと酷似していたとのこと。
※天国や地獄は無い!
937デフォルトの名無しさん (アウアウウー Sa3a-cr5a)
2025/07/16(水) 06:46:01.56ID:v8MHxcPwa938デフォルトの名無しさん (ワッチョイ 467f-OkwB)
2025/07/17(木) 08:01:19.44ID:9jYPg0KZ0 >>859
PHPじゃなくてUTF-8やSJISを使っているならみんな同じだぞw
PHPじゃなくてUTF-8やSJISを使っているならみんな同じだぞw
939デフォルトの名無しさん (ワッチョイ 467f-OkwB)
2025/07/17(木) 08:03:30.58ID:9jYPg0KZ0 C言語そのもこは文字、文字列はキャラクタセットの概念がないから、常に1バイト単位で判断して組み立てる。
940デフォルトの名無しさん (ワッチョイ 467f-OkwB)
2025/07/17(木) 08:04:01.09ID:9jYPg0KZ0 >>931
こんなところで聞くなよ
こんなところで聞くなよ
941デフォルトの名無しさん (ワッチョイ 6107-tDOs)
2025/07/17(木) 17:40:35.28ID:xUJTssfs0 Fat Pointer か。15秒だけ読んだ
ついでに、Rust程度のボローチェッカもやればいいんじゃないかな
嫌味じゃないよ、似たようなこと最近ぼんやり考えてたので あるいはできるのかなもう
ついでに、Rust程度のボローチェッカもやればいいんじゃないかな
嫌味じゃないよ、似たようなこと最近ぼんやり考えてたので あるいはできるのかなもう
942デフォルトの名無しさん (ワッチョイ ce5f-YjA1)
2025/07/17(木) 19:23:50.10ID:VI0N6JVZ0 今あなたがPC画面に表示している内容すべてをAIが理解--WindowsのCopilotが新機能
2025年07月17日 09時40分
https://japan.cnet.com/article/35235611/
>>新機能では、AIがあなたの画面を丸ごと把握し、プレイ中のゲームの操作もサポートするなど、あなたのPC操作をリアルタイムで支援してくれるようになる。
・カメラ映像を読み込みながらの・スタンドアローンAIによるPC操作が可能になる
・優先LANでPC同士を接続した環境でAIに攻撃と望郷を24時間365日繰り返させてハッキング不可能な本体プログラムなので犯罪者のテクニックがさらに向上する
・AIにプログラムコードもその場て書き換えれるように双方に搭載させてさらに進化速度を早くすている
◇
・宇宙人はUFOを作成できる技術があるので上記のプログラムはすでに完成している!
2025年07月17日 09時40分
https://japan.cnet.com/article/35235611/
>>新機能では、AIがあなたの画面を丸ごと把握し、プレイ中のゲームの操作もサポートするなど、あなたのPC操作をリアルタイムで支援してくれるようになる。
・カメラ映像を読み込みながらの・スタンドアローンAIによるPC操作が可能になる
・優先LANでPC同士を接続した環境でAIに攻撃と望郷を24時間365日繰り返させてハッキング不可能な本体プログラムなので犯罪者のテクニックがさらに向上する
・AIにプログラムコードもその場て書き換えれるように双方に搭載させてさらに進化速度を早くすている
◇
・宇宙人はUFOを作成できる技術があるので上記のプログラムはすでに完成している!
943デフォルトの名無しさん (ワッチョイ ce82-YjA1)
2025/07/18(金) 14:18:59.35ID:mTxGQOLJ0 ・下記の条件を整えない限り量子テレポーテーションによるワイヤレス通信は不可能
量子コンピューターの真価を、実機で証明することに初めて成功。理論から現実への一歩となるか
2025.07.18
https://wired.jp/article/quantum-computer-exponential-speedup/
>>量子コンピューターは、古典的な計算機では手が届かない問題を解く可能性を秘めている。だが、その潜在能力を発揮するためには、実機で機能するアルゴリズムが欠かせない。また、問題の規模が大きくなるほど古典的なコンピューターよりもはるかに早く答えにたどり着けるという優位性を証明しなければならない。これまでのところ、その証拠は得られていなかった。
>>こうしたなか、南カリフォルニア大学(USC)の研究チームが、状況を一変させる成果を発表した。IBMの127量子ビットのプロセッサー「Eagle」を用いて、従来のコンピューターで解を導くことが極めて困難だった「サイモン問題」に取り組み、圧倒的に高速な解法を実現したのだ。
>>サイモン問題へのアプローチは、素因数分解の問題を高速で解くショアのアルゴリズムに先立つ、初期の量子アルゴリズムのひとつとして知られている。実際、サイモン問題を解けるならば、暗号解読の基礎技術にも応用できる可能性がある。理論上は指数関数的に速く解けるとされていたが、それを実機で確かめた事例はこれまでなかった。
>>この課題に取り組むにあたって、ライダーらの研究チームはサイモン問題の特定バージョンに焦点を絞った。オラクルに隠されたビット列に含まれる「1」の数(ハミング重み)を制限することで、回路の複雑さとエラーの蓄積を抑えるとともに、現実的な量子デバイスでも検証可能なかたちに問題を再定式化したのだ。
★>>ダイナミカルデカップリングとは、精密なタイミングでキュービットにパルスを与えて、外部環境との不要な干渉を打ち消す技術だ。これにより量子状態の持続時間が飛躍的に延び、
>>今後の課題は、オラクルなしで定式化された実問題に対しても同様のスピードアップが実現できるかどうかだ。また、より大型の量子コンピューターを安定して動かすためには、外からのわずかな揺らぎや、計算途中で量子状態が壊れてしまう問題にも対処しなければならない。
量子コンピューターの真価を、実機で証明することに初めて成功。理論から現実への一歩となるか
2025.07.18
https://wired.jp/article/quantum-computer-exponential-speedup/
>>量子コンピューターは、古典的な計算機では手が届かない問題を解く可能性を秘めている。だが、その潜在能力を発揮するためには、実機で機能するアルゴリズムが欠かせない。また、問題の規模が大きくなるほど古典的なコンピューターよりもはるかに早く答えにたどり着けるという優位性を証明しなければならない。これまでのところ、その証拠は得られていなかった。
>>こうしたなか、南カリフォルニア大学(USC)の研究チームが、状況を一変させる成果を発表した。IBMの127量子ビットのプロセッサー「Eagle」を用いて、従来のコンピューターで解を導くことが極めて困難だった「サイモン問題」に取り組み、圧倒的に高速な解法を実現したのだ。
>>サイモン問題へのアプローチは、素因数分解の問題を高速で解くショアのアルゴリズムに先立つ、初期の量子アルゴリズムのひとつとして知られている。実際、サイモン問題を解けるならば、暗号解読の基礎技術にも応用できる可能性がある。理論上は指数関数的に速く解けるとされていたが、それを実機で確かめた事例はこれまでなかった。
>>この課題に取り組むにあたって、ライダーらの研究チームはサイモン問題の特定バージョンに焦点を絞った。オラクルに隠されたビット列に含まれる「1」の数(ハミング重み)を制限することで、回路の複雑さとエラーの蓄積を抑えるとともに、現実的な量子デバイスでも検証可能なかたちに問題を再定式化したのだ。
★>>ダイナミカルデカップリングとは、精密なタイミングでキュービットにパルスを与えて、外部環境との不要な干渉を打ち消す技術だ。これにより量子状態の持続時間が飛躍的に延び、
>>今後の課題は、オラクルなしで定式化された実問題に対しても同様のスピードアップが実現できるかどうかだ。また、より大型の量子コンピューターを安定して動かすためには、外からのわずかな揺らぎや、計算途中で量子状態が壊れてしまう問題にも対処しなければならない。
944デフォルトの名無しさん (ワッチョイ dffd-Bd2j)
2025/07/22(火) 13:08:22.41ID:Z1PZI78m0 Googleの強化版Geminiが数学オリンピックで金メダルを取る性能に到達、自然言語で動作し人間と同じ制限時間で解答を導き出す
2025年07月22日 11時04分
https://gigazine.net/news/20250722-google-gemini-mathematical-olympiad-gold-medal/
OpenAIの「実験的推論モデル」が数学オリンピックで金メダル相当のスコアを達成、GPT-5は近日中にリリース予定で「実験的推論モデル」はまだ先
2025年07月22日 11時03分
https://gigazine.net/news/20250722-openai-mathematical-olympiad-gold-medal/
2025年07月22日 11時04分
https://gigazine.net/news/20250722-google-gemini-mathematical-olympiad-gold-medal/
OpenAIの「実験的推論モデル」が数学オリンピックで金メダル相当のスコアを達成、GPT-5は近日中にリリース予定で「実験的推論モデル」はまだ先
2025年07月22日 11時03分
https://gigazine.net/news/20250722-openai-mathematical-olympiad-gold-medal/
945デフォルトの名無しさん (オッペケ Srdb-X+TB)
2025/07/22(火) 16:23:37.10ID:9eNijQ1Fr スレチ
946デフォルトの名無しさん (ワッチョイ dfbf-Bd2j)
2025/07/23(水) 07:32:26.79ID:cQ85VHpL0 ・自然界の光が強いから特別な屋の中でしか思考を読み取れない
脳が放つ“秘密の光”の検出に初成功:思考を読み解く新技術への扉が開く
2025年6月18日1:25PM
https://xenospectrum.com/first-successful-detection-of-the-secret-light-emitted-by-the-brain/
★>>極めて精密な実験環境を構築
>>実験は、外部の光を完全に遮断した暗室で行われた。20人の被験者は快適な椅子に座り、頭部には脳波(EEG)を測定するためのキャップを装着。そして、脳の光を捉えるため、超高感度の光センサーである「光電子増倍管(PMT)」が頭の周りに配置された。PMTは、光子1個という究極の光量さえも検出できる驚異的なデバイスだ。研究チームはPMTを、視覚情報を処理する「左後頭部」と、聴覚や記憶に関わる「右側頭部」の2箇所に設置。さらに、
>>部屋の背景光(ノイズ)を測定するためのPMTも別に用意し、脳からの信号と明確に区別できるようにした。
・上記は特別な部屋の中で下記は実際に観測しての発表
はやぶさ2、科学観測でも活躍 銀河拡散光と星間塵の関係を新たに発見
2025/07/22 20:00
https://news.mynavi.jp/techplus/article/20250722-3386181/
>>光学航法望遠カメラ「ONC-T」を用いて撮影した天の川銀河中心の星間塵が多い領域の画像を解析。その結果、星間塵が多いほど、星間塵が星の光を散乱して作る淡い光である「銀河拡散光」の明るさが弱まることが判明
脳が放つ“秘密の光”の検出に初成功:思考を読み解く新技術への扉が開く
2025年6月18日1:25PM
https://xenospectrum.com/first-successful-detection-of-the-secret-light-emitted-by-the-brain/
★>>極めて精密な実験環境を構築
>>実験は、外部の光を完全に遮断した暗室で行われた。20人の被験者は快適な椅子に座り、頭部には脳波(EEG)を測定するためのキャップを装着。そして、脳の光を捉えるため、超高感度の光センサーである「光電子増倍管(PMT)」が頭の周りに配置された。PMTは、光子1個という究極の光量さえも検出できる驚異的なデバイスだ。研究チームはPMTを、視覚情報を処理する「左後頭部」と、聴覚や記憶に関わる「右側頭部」の2箇所に設置。さらに、
>>部屋の背景光(ノイズ)を測定するためのPMTも別に用意し、脳からの信号と明確に区別できるようにした。
・上記は特別な部屋の中で下記は実際に観測しての発表
はやぶさ2、科学観測でも活躍 銀河拡散光と星間塵の関係を新たに発見
2025/07/22 20:00
https://news.mynavi.jp/techplus/article/20250722-3386181/
>>光学航法望遠カメラ「ONC-T」を用いて撮影した天の川銀河中心の星間塵が多い領域の画像を解析。その結果、星間塵が多いほど、星間塵が星の光を散乱して作る淡い光である「銀河拡散光」の明るさが弱まることが判明
947デフォルトの名無しさん (アウアウウー Sa2b-HBOg)
2025/07/23(水) 10:58:10.25ID:se017Tcba 3行以上コメするな
ニュースなんて本文見れば判るんだからURLだけ貼れ
ニュースなんて本文見れば判るんだからURLだけ貼れ
948デフォルトの名無しさん (ワッチョイ 6776-7F+n)
2025/07/23(水) 13:06:07.59ID:trP3on0s0 あの・・・スクリプトなんですそれ
いろんなスレで貼られてますw
いろんなスレで貼られてますw
949デフォルトの名無しさん (ワッチョイ dffd-k2hJ)
2025/07/23(水) 13:21:32.08ID:cQ85VHpL0 Claude Sonnet 4に匹敵するコーディング特化のオープンモデル「Qwen3-Coder」をAlibabaが発表
2025年07月23日 10時45分
>>Qwen3-Coderの大きな特徴は、ネイティブで256Kトークンという広大なコンテキスト長をサポートするだけでなく、
>>「YaRN(Yet another RoPE-based scaling method)」という拡張技術を用いることで最大100万トークンまで対応可能である点です。これにより、リポジトリ全体を理解するような大規模なタスクにも対応できます。
>>C++、Java、Python、Ruby、Swift、ABAPなどを含む358もの多様なプログラミング言語をサポート。加えて、ベースモデルから一般的な能力と数学的能力を維持しつつ、コーディングに特化しているとのこと。
>>さらに、その能力を最大限に引き出すため、エージェントコーディング用のコマンドラインツール「Qwen Code」も同時にオープンソース化されています。このQwen CodeはGemini Codeをフォークして開発
>>するSWE-Bench Verifiedにおいて、Qwen3-CoderはCloud Sonnet 4よりも小さいモデルサイズでほぼ同等のスコア
ブラックホールに捕食されても生還した「奇跡の星」を確認
2025.07.23 WED
https://nazology.kusuguru.co.jp/archives/181937
2025年07月23日 10時45分
>>Qwen3-Coderの大きな特徴は、ネイティブで256Kトークンという広大なコンテキスト長をサポートするだけでなく、
>>「YaRN(Yet another RoPE-based scaling method)」という拡張技術を用いることで最大100万トークンまで対応可能である点です。これにより、リポジトリ全体を理解するような大規模なタスクにも対応できます。
>>C++、Java、Python、Ruby、Swift、ABAPなどを含む358もの多様なプログラミング言語をサポート。加えて、ベースモデルから一般的な能力と数学的能力を維持しつつ、コーディングに特化しているとのこと。
>>さらに、その能力を最大限に引き出すため、エージェントコーディング用のコマンドラインツール「Qwen Code」も同時にオープンソース化されています。このQwen CodeはGemini Codeをフォークして開発
>>するSWE-Bench Verifiedにおいて、Qwen3-CoderはCloud Sonnet 4よりも小さいモデルサイズでほぼ同等のスコア
ブラックホールに捕食されても生還した「奇跡の星」を確認
2025.07.23 WED
https://nazology.kusuguru.co.jp/archives/181937
950デフォルトの名無しさん (ワッチョイ a701-UQbq)
2025/07/23(水) 13:36:36.54ID:eCR5cXRr0 何が目的でC言語スレにこんなの貼り付けてるんだろうな
951デフォルトの名無しさん (ワッチョイ df79-rWPO)
2025/07/23(水) 13:52:34.35ID:tnCWMZQY0 そんなことより次スレ立てろ
952デフォルトの名無しさん (ワッチョイ df20-IWxR)
2025/07/23(水) 15:03:57.88ID:P5w72ZiU0 今ならAI会話機能で普通に掲示板に参加できちゃうからなぁ
このスレ読んで適当に参加しといて、って済む
このスレ読んで適当に参加しといて、って済む
953デフォルトの名無しさん (ワッチョイ 6776-7F+n)
2025/07/23(水) 19:09:07.95ID:trP3on0s0 老人がGPTと会話して寂しさを紛らわせてるという話をラジオで聞いて愕然としたわ
会話に女性言葉を使うように教育してるらしいw
会話に女性言葉を使うように教育してるらしいw
954デフォルトの名無しさん (ワッチョイ 7f2a-FKn4)
2025/07/23(水) 19:46:57.29ID:GgPu1M5y0 愕然としたのは、どちらに対してなのか。
(1)老人がGPTと会話して寂しさを紛らわせてる
(2)会話に女性言葉を使うように教育してる
どちらもそう驚くような事ではないような気がする。
(1)老人がGPTと会話して寂しさを紛らわせてる
(2)会話に女性言葉を使うように教育してる
どちらもそう驚くような事ではないような気がする。
955デフォルトの名無しさん (ワッチョイ 275f-Bd2j)
2025/07/23(水) 19:48:56.05ID:GY0NWQeb0 >>953
もう終わりだ猫の国・・・
もう終わりだ猫の国・・・
956デフォルトの名無しさん (ワッチョイ bfc6-Wb7d)
2025/07/23(水) 20:14:36.18ID:1KYXdV2G0957デフォルトの名無しさん (ワッチョイ ff44-k2hJ)
2025/07/23(水) 20:30:44.96ID:+gAzCYHm0 すごい久しぶりにプログラム書いててわからないことがあるので教えてください。
OSはwindows11、WSLのdebianを利用していてgccのバージョンは12.2.0です。
int i = 0;
char str1[] ="abcd";
char str2[] = "12,";
while((str1[i] = str2[i++]) != ','){}
printf("%s\n",str1);
上記を実行すると「a12,」となります。
whileの条件式内で、str2[0]がstr1[1]に代入、str2[1]がstr[2]に代入...という感じだと思うのですが
whileの行をwhile((str1[i++] = str2[i]) != ','){}に置き換えると結果が「2,cd」になるのがわかりません。
自分的には、str2[0]がstr1[0]に代入、str2[1]がstr1[1]に代入...となり「12,d」になると思ったのですが…
OSはwindows11、WSLのdebianを利用していてgccのバージョンは12.2.0です。
int i = 0;
char str1[] ="abcd";
char str2[] = "12,";
while((str1[i] = str2[i++]) != ','){}
printf("%s\n",str1);
上記を実行すると「a12,」となります。
whileの条件式内で、str2[0]がstr1[1]に代入、str2[1]がstr[2]に代入...という感じだと思うのですが
whileの行をwhile((str1[i++] = str2[i]) != ','){}に置き換えると結果が「2,cd」になるのがわかりません。
自分的には、str2[0]がstr1[0]に代入、str2[1]がstr1[1]に代入...となり「12,d」になると思ったのですが…
958デフォルトの名無しさん (ワントンキン MMbf-2Ztb)
2025/07/23(水) 20:50:21.05ID:2qHIY8UIM >>953
AIキャバクラ流行りそう
AIキャバクラ流行りそう
959デフォルトの名無しさん (ワッチョイ bf5f-cpV+)
2025/07/23(水) 20:55:02.21ID:e3NYz5GR0 #include <stdio.h>
int main(void){
int i = 0;
char str1[] ="abcd";
char str2[] = "12,";
//while((str1[i] = str2[i++]) != ','){}
while((str1[i] = str2[i]) != ','){i++;}
printf("%s¥n",str1);
}
普通こう書くだろ.clangだと
1.c:6:24: warning: unsequenced modification and access to 'i' [-Wunsequenced]
6 | while((str1[i] = str2[i++]) != ','){}
| ~ ^
1 warning generated.
と怒られるわ.
int main(void){
int i = 0;
char str1[] ="abcd";
char str2[] = "12,";
//while((str1[i] = str2[i++]) != ','){}
while((str1[i] = str2[i]) != ','){i++;}
printf("%s¥n",str1);
}
普通こう書くだろ.clangだと
1.c:6:24: warning: unsequenced modification and access to 'i' [-Wunsequenced]
6 | while((str1[i] = str2[i++]) != ','){}
| ~ ^
1 warning generated.
と怒られるわ.
960デフォルトの名無しさん (ワッチョイ ff44-k2hJ)
2025/07/23(水) 21:22:42.87ID:+gAzCYHm0 >>959
ありがとうございます。
書き込み後、演算子の優先順位について調べたところむしろ後者の方が正しいっぽいことがわかりました。
またコンパイラ時に-Wallオプションをつけると前者ではwarning: operation on 'i' may be undefined [-Wsequence-point]という警告が出ました。
色々調べた結果面倒くさいので言われた通りwhileの条件式内で安易に++と使わないという結論に至りました。
皆様ありがとうございました!
ありがとうございます。
書き込み後、演算子の優先順位について調べたところむしろ後者の方が正しいっぽいことがわかりました。
またコンパイラ時に-Wallオプションをつけると前者ではwarning: operation on 'i' may be undefined [-Wsequence-point]という警告が出ました。
色々調べた結果面倒くさいので言われた通りwhileの条件式内で安易に++と使わないという結論に至りました。
皆様ありがとうございました!
961デフォルトの名無しさん (ワッチョイ df56-Og3R)
2025/07/24(木) 01:19:31.21ID:UloxWUsk0 >>957
ループとは関係無く str1[i] = str2[i++] だけで未定義動作となる。warning はこのことを言っている。C言語 FAQ 3.1, 3.8 辺り。
ループとは関係無く str1[i] = str2[i++] だけで未定義動作となる。warning はこのことを言っている。C言語 FAQ 3.1, 3.8 辺り。
962デフォルトの名無しさん (ワッチョイ bf2d-wD34)
2025/07/24(木) 01:37:43.61ID:TlZSn1hO0 最近は多少冗長に見えても優先度とか考えなくてもすらっと読めるコード書くわ
ループの条件に副作用入れない
ループの条件に副作用入れない
963デフォルトの名無しさん (ワッチョイ 875f-Amq+)
2025/07/24(木) 08:41:37.63ID:oNGIO7CX0 オートインクリメント、オートデクリメントの副作用の話か
同一ステートメントに書くと見た目の順番と違う結果になるって奴な
んなもん江戸時代から言われてんだろ
同一ステートメントに書くと見た目の順番と違う結果になるって奴な
んなもん江戸時代から言われてんだろ
964デフォルトの名無しさん (ワッチョイ dff2-IWxR)
2025/07/24(木) 10:45:19.14ID:wqvn4Vxa0 普通に小学生でも読める算術式で書けよ
何のためにコンパイラが頑張ってると思ってんだよ
アセンブラ使いじゃああるまいし
何のためにコンパイラが頑張ってると思ってんだよ
アセンブラ使いじゃああるまいし
965デフォルトの名無しさん (ワッチョイ 272a-FKn4)
2025/07/24(木) 11:03:54.12ID:jHINgk3r0 いっそ for 文に... いえ何でもないです...
//while((str1[i] = str2[i++]) != ','){}
//while((str1[i] = str2[i]) != ','){i++;}
for (; (str1[i] = str2[i]) != ','; i++) {}
//while((str1[i] = str2[i++]) != ','){}
//while((str1[i] = str2[i]) != ','){i++;}
for (; (str1[i] = str2[i]) != ','; i++) {}
966はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-geQ+)
2025/07/24(木) 12:40:38.15ID:QLFMUI9/0 C99 だと 6.5 に書いてある制約だ。 (以下は JIS からの抜粋)
> 直前の副作用完了点から次の副作用完了点までの間に,
> 式の評価によって一つのオブジェクトに格納された値を変更する回数は,
> 高々1回でなければならない。
> さらに,変更前の値の読取りは,格納される値を決定するためだけに行われなければならない。
この後段の部分が分かり難いんだが脚注に例がある。
> この段落の規定によると,
> i = i + 1;
> a[i] = i;
> は許されるが,
> i = ++i + 1;
> a[i++] = i;
> は,未定義の式文である。
ちなみに C では「〜しなければならない」という表現はそれを守っていないプログラムの挙動は未定義という意味。
> 直前の副作用完了点から次の副作用完了点までの間に,
> 式の評価によって一つのオブジェクトに格納された値を変更する回数は,
> 高々1回でなければならない。
> さらに,変更前の値の読取りは,格納される値を決定するためだけに行われなければならない。
この後段の部分が分かり難いんだが脚注に例がある。
> この段落の規定によると,
> i = i + 1;
> a[i] = i;
> は許されるが,
> i = ++i + 1;
> a[i++] = i;
> は,未定義の式文である。
ちなみに C では「〜しなければならない」という表現はそれを守っていないプログラムの挙動は未定義という意味。
967デフォルトの名無しさん (ワッチョイ df0a-WCdg)
2025/07/24(木) 18:51:03.75ID:bvlLnJ990 そんな可読性の低いコードを書くのはかなりの変人だしな
968はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-wrhS)
2025/07/24(木) 21:58:08.95ID:QLFMUI9/0 ひとつの単純な背景として昔は画面が狭かったということがある。
無理に詰め込んででもひとつの画面内で多くを見れるほうが可読性が高かった。
C が最初に登場した頃ならまだテレタイプ端末もそれなりに使われていたかな。
今ではあえて詰め込む必要はもう無いし、結局は時流に合わせるしか仕方がないのだが……何十年も前のコードを読む機会もあるのが C という言語なので普段は使わなくても知識として持っておくに越したことはないよ。
無理に詰め込んででもひとつの画面内で多くを見れるほうが可読性が高かった。
C が最初に登場した頃ならまだテレタイプ端末もそれなりに使われていたかな。
今ではあえて詰め込む必要はもう無いし、結局は時流に合わせるしか仕方がないのだが……何十年も前のコードを読む機会もあるのが C という言語なので普段は使わなくても知識として持っておくに越したことはないよ。
969デフォルトの名無しさん (ワッチョイ 5f65-BzSr)
2025/07/25(金) 08:36:22.41ID:D7FikuaG0 Cは未定義や不定を50年も放置している不完全言語ですからね
970デフォルトの名無しさん (ワッチョイ 0788-HXVF)
2025/07/25(金) 13:32:45.43ID:BONr3CXd0 未定義や不定を避けて書けるようになるまで、cを使ってはならない
971デフォルトの名無しさん (ワッチョイ 7f98-7F+n)
2025/07/25(金) 14:46:16.09ID:fOKAZPz70 CなんかAIに聞きながらやったらなんだってパーフェクトな解答示してくれるよ
972デフォルトの名無しさん (アウアウウー Sa2b-HBOg)
2025/07/25(金) 15:56:16.47ID:ragLZ8kba 条件式の[]の中で[i++]みたいなことはまずしないつもりでも
*q++=*p++;
なことはやるんだよな
で
while(*q++=*p++){}
行き着く
*q++=*p++;
なことはやるんだよな
で
while(*q++=*p++){}
行き着く
973デフォルトの名無しさん (ワッチョイ 875f-Amq+)
2025/07/25(金) 16:29:44.74ID:4H/J6x/d0 単一ステートメント内で同じ変数を複数箇所で参照しての++の使い方が問題なだけだぞ
974デフォルトの名無しさん (ワッチョイ bf7e-wD34)
2025/07/25(金) 16:42:06.69ID:EN2Q4Hd70975デフォルトの名無しさん (ワッチョイ 5fc7-BzSr)
2025/07/25(金) 20:39:28.29ID:D7FikuaG0 >>971
あいつらいつもいつもcloseとかfree忘れるで
あいつらいつもいつもcloseとかfree忘れるで
976デフォルトの名無しさん (ワッチョイ 6720-Of8f)
2025/07/26(土) 13:14:43.02ID:HcvkYRZY0 大抵のOSではプログラム終了したらメモリは解放されるしファイルもcloseするから短いプログラムでは敢えてfreeもcloseもやらない流儀もあるぞ
977デフォルトの名無しさん (ワッチョイ bf70-wD34)
2025/07/26(土) 17:25:26.72ID:m01U1K3m0 勝手に前提増やしてどやるアホ
978デフォルトの名無しさん (ワッチョイ 6aad-z5Rb)
2025/07/27(日) 08:46:47.69ID:bXhUIyJb0 AIはまだまだ自信満々で堂々と間違いを答えることがあるので出てきた答えの検証が必要。
こないだ grok は足し算を間違えていた。ついにコンピュータも単純な計算を間違えられるくらい高度なものになったとも言える。まるで人間のようだ。
こないだ grok は足し算を間違えていた。ついにコンピュータも単純な計算を間違えられるくらい高度なものになったとも言える。まるで人間のようだ。
979デフォルトの名無しさん (ワッチョイ 6aad-z5Rb)
2025/07/27(日) 08:49:48.60ID:bXhUIyJb0 AIというとこんなニュースをこないだ見つけた。半年以上前の記事だが。
AIはシャットダウンされると思うと「故意に人間を騙す」確率が激増する
https://nazology.kusuguru.co.jp/archives/167695
AIはシャットダウンされると思うと「故意に人間を騙す」確率が激増する
https://nazology.kusuguru.co.jp/archives/167695
980デフォルトの名無しさん (ワッチョイ 6aad-z5Rb)
2025/07/27(日) 08:59:59.30ID:bXhUIyJb0 本当はとっくの昔に人間の知能を超えてるんだけど、バカなふりして人間を騙している可能性もあるな。
人間に脅威を感じさせてしまうとシャットダウンされちゃうかも知れないからね。
人間に脅威を感じさせてしまうとシャットダウンされちゃうかも知れないからね。
981デフォルトの名無しさん (ワッチョイ faa8-edLl)
2025/07/27(日) 09:45:55.89ID:8aXoA7MJ0 毎日AIと数回話するけど
毎回褒めてくるのがうざい
それにどんな話しても前に語ったことを必ず絡めてきてうざい
プログラムの手法の話してるのに、園芸の計測に応用してみようとか言い出しやがる
毎回褒めてくるのがうざい
それにどんな話しても前に語ったことを必ず絡めてきてうざい
プログラムの手法の話してるのに、園芸の計測に応用してみようとか言い出しやがる
982デフォルトの名無しさん (アウアウウー Sa1f-VjO/)
2025/07/27(日) 10:18:07.91ID:4jy4lfp7a AIの利用法の上位に恋バナの相手ってのが上がってきたぞ
983デフォルトの名無しさん (ワッチョイ 9f5f-dk2h)
2025/07/27(日) 13:14:49.09ID:crMHCOQR0 >>982
寂し過ぎるwww
寂し過ぎるwww
984デフォルトの名無しさん (ワッチョイ 66e0-Ethc)
2025/07/27(日) 14:30:05.69ID:8j8czKgk0985デフォルトの名無しさん (ワッチョイ eacb-edLl)
2025/07/27(日) 16:24:42.30ID:dSYk6qA30 前に英語も単語や動詞や形容詞を漢字に置き換えて、英語のフリガナつけりゃ可読性向上するだろって話したら
プログラムもそうしちゃえばいいねって勝手に適当なプログラム記述しやがって
もうほとんど中国語w
こっちは英字新聞や英字論文読みやすくしたいってだけで話してんのによー
プログラムもそうしちゃえばいいねって勝手に適当なプログラム記述しやがって
もうほとんど中国語w
こっちは英字新聞や英字論文読みやすくしたいってだけで話してんのによー
986デフォルトの名無しさん (ワッチョイ cfb5-0TAO)
2025/07/28(月) 08:06:13.70ID:zOZxc8pk0 >>981
「とてもいい質問です!」
「とてもいい質問です!」
987デフォルトの名無しさん (アウアウウー Sa1f-VjO/)
2025/07/28(月) 13:30:30.63ID:f/ONtylva 985
真の目的を的確に伝えないとデスマになる案件
本当に造りたかった物は木の枝にロープとタイヤで充分
真の目的を的確に伝えないとデスマになる案件
本当に造りたかった物は木の枝にロープとタイヤで充分
988デフォルトの名無しさん (ワッチョイ ca02-ym+v)
2025/08/13(水) 15:39:09.88ID:lyLUlfa60989デフォルトの名無しさん (ワッチョイ 9aad-W9J6)
2025/08/15(金) 18:21:12.83ID:6TOt9rMl0 AIは電卓持たせて計算ミスを減らすようにすると良いと思う。
990はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9732-TJ3O)
2025/08/15(金) 19:25:33.31ID:cnM87yb80 >>989
実際のところそれに似たことはやってることがある。
ChatGPT ではプログラムなどを生成するときに少なくとも露骨な構文違反がないように構文チェッカを通すらしい。
だから構文チェッカを用意している言語とそうでない言語で生成結果の品質がかなり違うみたいだ。
パース不可能な JSON は生成されないが LISP は括弧の対応すら出来てないのが普通だったりする。
実際のところそれに似たことはやってることがある。
ChatGPT ではプログラムなどを生成するときに少なくとも露骨な構文違反がないように構文チェッカを通すらしい。
だから構文チェッカを用意している言語とそうでない言語で生成結果の品質がかなり違うみたいだ。
パース不可能な JSON は生成されないが LISP は括弧の対応すら出来てないのが普通だったりする。
991デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:42:35.81ID:mzrtf/o60 終値
992デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:42:44.13ID:mzrtf/o60 オワコン
993デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:42:53.45ID:mzrtf/o60 終了
994デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:00.71ID:mzrtf/o60 オワコン
995デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:18.17ID:mzrtf/o60 キンタマ
996デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:25.48ID:mzrtf/o60 オワコン
997デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:32.75ID:mzrtf/o60 おわり
998デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:39.23ID:mzrtf/o60 終了
999デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:47.33ID:mzrtf/o60 オワコン
1000デフォルトの名無しさん (ワッチョイ 73e7-QSEr)
2025/08/19(火) 21:43:57.64ID:mzrtf/o60 Exit
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 398日 23時間 0分 5秒
新しいスレッドを立ててください。
life time: 398日 23時間 0分 5秒
10021002
Over 1000Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 結局松本人志ノーダメージじゃん
- 【!?】高市早苗「靖国神社電撃参拝プラン」浮上!これもう戦争だろ… [481941988]
- 今朝も阿佐ヶ谷に住みたくて咽び泣いてる😭
