C言語なら俺に聞け 163

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7bba-Lem2)
垢版 |
2024/07/16(火) 22:43:54.18ID:ZrsCjURC0
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 162
https://mevius.5ch.net/test/read.cgi/tech/1698653580/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2025/04/21(月) 05:35:14.60ID:gJLXVah/0
そういや、boolの実値は処理系依存とはるか昔に習ったようなキモス
785デフォルトの名無しさん (スッップ Sd0a-Rq/v)
垢版 |
2025/04/21(月) 05:47:00.09ID:wZXY8H1ed
>>783
FAQを読め
2025/04/21(月) 05:54:01.88ID:jNnWMUsR0
>>785
これのこと?
https://c-faq.com/bool/booltype.html
そういのを好む人もいるとだけ書かれていて、理由の説明はない。
2025/04/21(月) 09:56:56.17ID:i498vk5cp
#define TRUE (0==0)
#define FALSE !TRUE
この書き方はまだ世の中がBASICでソフト組んでた頃に見たわ
たぶんそれ以前のどこか別の言語からの輸入なんだとは思うが
かっこいいから好んで使ってる
2025/04/21(月) 09:58:55.59ID:JjvQDxsX0
まあ、まだtrueが0以外って仕様だった頃に、より処理系に沿った正確な値が欲しかったんだ
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 の時点で既にこのような仕様なので。

ただ、全ての処理系が完璧に同じ仕様に沿っていたわけでもないだろうし、当時の事情の中で有用なテクニックだった可能性はあるかもしれない。
2025/04/21(月) 12:00:52.53ID:QKqUxhO90
いまでも「0は偽」という仕様しか謳われてないように見えるがどうだろう

むしろ「偽は0」という仕様が消えているようにも思えるが、どうだったっけ
2025/04/21(月) 12:43:19.49ID:++xqwTI40
>>790
_Bool は整数型 (標準符号無し整数型) に分類されている。
整数型は他の整数型に変換したときに変換後の型で表せる範囲であるなら同じ値になるルールなので _Bool 型の 0 は 0 だよ。
792デフォルトの名無しさん (ワッチョイ f9ac-0INX)
垢版 |
2025/04/21(月) 12:51:37.31ID:NLKNLeTR0
関数の戻り値だと、
0は正常終了、非0は異常終了
というのが多かったと思う
2025/04/21(月) 13:16:11.04ID:3FvSqisv0
論理型のある言語でも
If b = True Then
なんて書かれるとモゾモゾしてしまう
2025/04/21(月) 13:36:06.07ID:0RekbFS70
false=0,true=1に決めたとしても、いにしえのboolがint型な影響で行儀の悪い関数から2とか-999999999を返せてしまって
1以外のtrueで意図しない分岐になる恐れがあるから、ifの条件は0か非0かで判断しましょうというバッドノウハウ的なルールになったようだ
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
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のフォルダにも二つあるのでわかりません
797デフォルトの名無しさん (ワッチョイ 971f-3+vo)
垢版 |
2025/04/28(月) 20:13:33.98ID:LzrB3b/O0
>>796
CL。EXE

CL.EXEの間違え
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
これらのバッチファイルを経由せずに直接環境を設定するのはやめたほうが良い。

バッチファイルの具体的な内容は各環境によって (インストール時の条件などによってかな?) 違うので他環境でインストールしたバッチファイルを持ってくるなと注意書きがある。
799デフォルトの名無しさん (ワッチョイ 971f-3+vo)
垢版 |
2025/04/28(月) 20:39:54.03ID:LzrB3b/O0
>>798
自分で直接やらない方がいいのですね
はって頂いたページを見ましたが初心者には難しいですね
でもこちらに載ってあるBATファイルで設定するのがいいのですね
ありがとうございます
2025/04/28(月) 20:54:09.97ID:clGXfLYj0
>>799
私自身は今は使ってないからあまり把握してないのだけれど、普通にインストールしたらそのバッチファイルがスタートアップメニューに登録されなかったっけ?
801デフォルトの名無しさん (ワッチョイ 9ff5-ogCD)
垢版 |
2025/04/28(月) 21:29:48.61ID:es1rmYMQ0
>>800
探してみたのですが見つかりませんでした。
PC買い替えたので改めて環境設定しているのです。
もう一度インストールし直すとあるかもしれませんね。
私が消してしまった可能性もなくはないので
2025/04/28(月) 21:32:36.04ID:PCWkr5M/0
自分でPATHを通してみろ。っていう実習だとしたら。
たとえば、Hostx64の中のx86は、x64上でclを実行して、出てくるバイナリはx86用ってこと

「そうやって覚える」のもアリだが、vcvarsall を使いこなすこともぜひ覚えよう
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が実行できます。
みなさん親切にありがとうございました!!
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 は難し過ぎ。
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一択ですしねえ
2025/04/30(水) 20:41:49.51ID:SXWYOndw0
ゲーム開発とかWindowsだろ
Linux一択ってお前狭い世界しか知らないだけだぞ
2025/04/30(水) 20:47:22.61ID:KuvXDJPY0
狭いWindowsの世界から飛び出そう
2025/05/01(木) 03:44:24.96ID:xFwps2mR0
Windows一択とは言ってないね
その論理思考能力でプログラミングやってて大丈夫?
812デフォルトの名無しさん (アウアウウー Sa1b-Dl8r)
垢版 |
2025/05/01(木) 10:14:05.05ID:nTiKCI2Ra
>>808
*nix系のcmakeとWindowsのCMakeは別物だったと思うけど
VSはプロジェクトからmakefileを造ることは可能だったはず
メリットがあるかどうかは知らん
813デフォルトの名無しさん (スッップ Sdbf-KaeE)
垢版 |
2025/05/01(木) 13:40:32.60ID:pf/ZHGigd
VCって、C言語にとてもよく似た、ともすればほぼ同じ文法でソースを書ける、
何かのフレームワーク用の開発環境だよね
2025/05/01(木) 14:35:25.46ID:nTiKCI2Ra
MFCのことか
2025/05/01(木) 20:39:23.67ID:ZetavPXj0
>>812
nmakeがmakeと別物であってcmakeはWindowsでも一緒だろ
2025/05/03(土) 00:28:21.78ID:HHJZofaV0
錆び付いたC言語で今を打ち抜こう
817デフォルトの名無しさん (ワッチョイ 972a-DyZQ)
垢版 |
2025/05/03(土) 07:50:52.82ID:v3weHkV10
>>816
何を使用して?
2025/05/03(土) 10:18:34.76ID:sPbW4KAD0
>>817
投げ捨てられたautoconf
819デフォルトの名無しさん (ワッチョイ b7fa-VDOd)
垢版 |
2025/05/03(土) 16:53:00.85ID:ZpfRANr50
>>816-818
良い歌詞だね
曲付けてもらえば?
820デフォルトの名無しさん (ワッチョイ 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(土) 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(月) 16:26:03.24ID:gTSTkGJ70
>>822
オンボのグラフィックスでも動きますか?
メインメモリは24GBです
824デフォルトの名無しさん (ワッチョイ 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
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+evNW70
もう見抜けない、最先端のAIディープフェイク動画は心臓の鼓動まで再現、判別が困難に
2025-05-08
https://karapaia.com/archives/507859.html
2025/05/09(金) 13:25:09.01ID:3M4tliEX0
天国は良い所か聞けばわかるよ
829デフォルトの名無しさん (ワッチョイ 162a-4tkZ)
垢版 |
2025/05/09(金) 19:22:34.32ID:rWwF6jNu0
帰って来たヨッパライか。
2025/05/09(金) 22:19:38.30ID:toYOiewu0
>>718
なんこれCプログラマなのに初めてみたは…
WGのサイトは見ててあそこが公式と思ってた
最近出来たんか
2025/05/09(金) 22:21:43.53ID:toYOiewu0
公式ホームページ(半世紀遅れ)
良いドメイン取れてよかったね
832デフォルトの名無しさん (ワッチョイ 12ad-T6Ba)
垢版 |
2025/05/10(土) 14:39:03.43ID:17EyeKMh0
>>825
はい。
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
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
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/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(水) 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言語の終焉か
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言語を使う必要もなくなっている。
2025/06/28(土) 16:47:05.13ID:WGUfZy3xp
もはやjavascriptすら動くからなぁw
2025/06/28(土) 21:00:47.99ID:HZiRGN/SM
ただまあ、バイト単位で処理したい時には JS や Python や Java や Ruby
より便利だけどな。
2025/06/28(土) 21:01:32.93ID:HZiRGN/SM
あと、文字コードだとかを勝手に変換しないというのも便利だな。
850デフォルトの名無しさん (ワッチョイ 4201-V852)
垢版 |
2025/06/30(月) 06:22:37.34ID:m9Iz5ero0
結局、自作したいだけかよw
2025/06/30(月) 11:37:57.93ID:YZeS8CxH0
外食に飽きると自炊を始めるものだよ
852デフォルトの名無しさん (ワッチョイ c602-1ra/)
垢版 |
2025/06/30(月) 12:00:43.86ID:rn9gnazy0
そろそろc談義したいぞ…
2025/06/30(月) 13:32:07.78ID:Bi14XNYeM
C/C++は、(レンタル)サーバーサイドでも、ソースコードを盗まれないというメリットがある。
2025/06/30(月) 13:49:28.37ID:Bi14XNYeM
PHPは一見便利なように見えても、何をやっているのか不安が残る部分がある :
・文字コードの扱い。勝手に変換される可能性。それが脆弱性の原因になる可能性がある。
・SessionID の管理のされ方。それがブラックボックスで余り説明が無いので危険。
・文字列が「長さ指定文字列」と「0終端文字列」との二種類あり、デフォルトは前者だが、
正規表現系は後者である場合があり、それを知らないと脆弱性の原因になる。
2025/06/30(月) 18:59:51.22ID:YQWckD/50
最近はFPGAでコンピュータ作ってるけどメモリが4kbytesとかしかないのでC言語があると助かります。
2025/06/30(月) 20:50:19.20ID:YZeS8CxH0
アセンブラ使え
857デフォルトの名無しさん (ワッチョイ c379-SOZQ)
垢版 |
2025/06/30(月) 20:56:51.68ID:i+8hTHYI0
そこまでのキツい環境ならC使わずにアセンブラ使えって思う
2025/06/30(月) 20:57:51.84ID:bv4WQiut0
その規模なら C で書くにしても配慮すべき低レイヤの事情がありすぎてあまり C の甲斐がなさそうだと私も思う。
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言語で作っていれば子の様な齟齬は起きない。
2025/07/01(火) 05:48:42.66ID:M5z4vIa80
>>859
× > PHPの文字列は
○ unicodeは

× > C言語で作っていれば
○ asciiに限定すれば

お前は基本的なところがまるで理解出来てない
そもそも文字コードの話なのだから、どの言語でも同じ
特定の言語を使用すると回避出来るとかいう話にはなり得ない
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は、どうやら全自動で出来るみたいね…
2025/07/01(火) 08:38:13.77ID:WjfKubzqM
>>860
859は別に間違ったこと言ってないでしょ
そこまで上から目線で言いたいならunicodeは書記素クラスタで考えないといけないので可変、ぐらい言わないとね
コードポイントならUTF-32は4バイト固定だし
むしろc言語はasciiという言い方は複数の意味でおかしい
2025/07/01(火) 09:47:54.97ID:M5z4vIa80
>>862
俺は859は根本的に勘違いしてる(≒間違っている)という見方を今も変えてないが、
少なくとも862の方が詳しいようだから(859の相手は)お前に任せるわ。

俺より詳しい奴が居る場所で俺が説法する意味もなく、
馬鹿と初心者が無限に沸くネットで間違いを全部指摘して回るのは無理だし。
下から目線のゆとりZ様同士でよろしくやってくれ。
どのみち俺とお前らではどうやっても合わないのはこれまでも散々経験してきた事だ。
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がコミュ障な所だ。
まあそれでもお互いにやるのは自由、よろしくやってくれ。
俺は降りる。
865デフォルトの名無しさん (ワッチョイ c379-SOZQ)
垢版 |
2025/07/01(火) 10:03:19.08ID:0aieN+8C0
普通に何も考えずに使ってて問題起きないならstrlen以外にもmbslenとかwcslenみたいなのを用意されることはないんだよな
2025/07/01(火) 10:07:53.62ID:O7C1rCRT0
ああついでに言っておくと、

ゆとり以前(=俺):内容が正しければ態度なんてどうでもいい

ゆとりZ:ボクがどんなにマヌケな間違いをしていたとしても、
 優しく丁寧に教えてくれる事が絶対条件で、
 優しければ内容が多少間違っていても許容される(←いやこれは俺は許容出来ねえ)

という違いだな。まあゆとりZ同士でよろしくやってくれ。
ただまあ、Qiitaのスレとかチラ見してるが、
発言の自由がある=どんな馬鹿でも発言出来る=間違った情報も当然発信される、なのだから、
Qiitaに正確性を求めるのは仕様的に無理なので、連中も間違ってて、
Qiitaは玉石混淆な上で、石が大量生産されるのは仕様として甘受し、玉を探すべきだとは思うがな。
とはいえQiitaが石→玉化する機構を持ち合わせられない(=間違いを指摘する事すら出来ない)
のは上記ゆとりZ価値観の賜だから、詰んではいるが、それでも(Qiitaというサイトが)無いよりは断然いいし。

つまりだな、お前らゆとりZは「上から目線ガー」とか一々やってるから駄目なのであって、
「相手」(今回は859)に向き合う気がないから、
Qiita等の「一方的に発信するだけ」のツールは断然相性がいいが、
そこで「双方向な議論」とかはまるで出来ないんだと思うぜ。
859にとって困るのは、「上から目線」ではなく、「間違いを指摘してもらえない」事だろ。
(ただこれがゆとりZに取っては違うらしいので俺にはどうにも合わないが)
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って自然言語学者が策定してる仕様で、プログラミングのし易さなんてまるで考慮して無いな
2025/07/01(火) 16:58:38.98ID:W1sziXWKM
PHPに限らず、文字コードを勝手にいじくる言語は脆弱性の温床になる。
C言語は指示しない限りは何もしないから、むしろ安全。
860は、馬鹿だから理解できない。
2025/07/01(火) 17:04:55.37ID:W1sziXWKM
中途半端に自動化しようとしていることが脆弱性の温床になる。
詳細な仕様を書かないで「こういう場合にはこうすれば安全ですよ」
みたいなのが結構危ない。
なぜ、そうするのか。その関数は厳密に何を行っているのか。
「簡易言語」には、そういう情報が欠落していることが多い。
2025/07/01(火) 17:07:29.61ID:W1sziXWKM
フレームワークも危険だ。
「完成品」として何もカスタマイズしないで使っているなら、安全かもしれない。
ところが、「プラグイン」と呼ばれているものを組み合わせたり、
独自にカスタマイズしようとすると、とたんに危険になる。
なぜなら、仕組みが分かりにくく、ソースが巨大で解読しにくいことが多いからだ。
特に問題なのはオープンソースのフレームワークだ。
ソースが汚いものが多いから、それが原因で理解が難しくなり、脆弱性が入り込む。
2025/07/01(火) 17:10:17.61ID:W1sziXWKM
860は、物事の理解が甘い。
自分が馬鹿なことに気付いてない。
5chだけで偉そうにしている馬鹿。
872デフォルトの名無しさん (ワッチョイ c3ef-OGY2)
垢版 |
2025/07/01(火) 17:12:20.54ID:rc7NgUjs0
自己紹介ですか?
2025/07/01(火) 17:15:03.47ID:W1sziXWKM
>>872
おまえは、自覚が無い馬鹿だ。
874デフォルトの名無しさん (ワッチョイ c379-SOZQ)
垢版 |
2025/07/01(火) 17:41:41.27ID:0aieN+8C0
全然違う話になったぞ???
2025/07/01(火) 19:57:14.17ID:4pZHV5xo0
けどさ
今のWindowsって内部的にはUTF16LEなんだよな
それをアプリ側に合わせてマルチバイトに変換したりしてるわけで
2025/07/01(火) 20:03:31.00ID:M5z4vIa80
>>874
まあ859もゆとりZだったというオチだよ。
見えてた展開ではあったが、放置するのも問題かと思って最低限のツッコミを860でしたつもりだったが、
ゆとりZが釣れまくってどうにもならねえ。脱線しすぎ。

5chにはコミュ障が多いのでついでに解説しとくと、
859のテイ、何だかよく分からん独り言は、ゆとりZ特有のムーブで、
・質問して答えてもらえないと傷つくし、
・議論提起してボコられたら嫌だし、
・何だかよく分からん独り言にしとけば、どういう展開になっても逃げられるし!!!
って事で、傷つかない為に予防線張りまくりの戦術、連中なりの「コミュ上手」な手法らしい。
いやいや、お前ら一々メンドクセエわ。
2025/07/01(火) 20:04:09.01ID:M5z4vIa80
>>868
> 860は、馬鹿だから理解できない。
お前がどう思おうと自由だが、さすがに俺よりお前の方が賢いと思う奴は居ないと思うぞ。
まあこれも862と同様のゆとりZ特有ムーブで、「ばかにされた!!!」事が内容に勝ってる。
いやいや、お前がそもそもマヌケな事を言わなければ防げた展開だろ、とはならない。

> PHPに限らず、文字コードを勝手にいじくる言語は脆弱性の温床になる。
> 特に問題なのはオープンソースのフレームワークだ
少なくとも今のお前より理解してる連中が作ってるから、
今のお前の知識と知能で作った物よりは安全だろうよ。

ついでに言うとこれもゆとりZの特徴で、
心根で他人を見下してるからこんな発言になるし、また、
心根で他人に対してマウントを取りたい、上から目線で話したい、と思ってて、でも我慢してるからこそ、「上から目線」に過敏になる。
オープンソースにゴミが多いのも事実としても、
同じ物を作るのはかなり大変なのも、結果的に生き残ってる物はそれなりに鍛えられた品質なのも事実。
各言語処理系なんて相当の人数が関わって改善された結果だから、同等以上の品質の物を作るのは事実上無理だと思うけど。
ゆとりZは「謎の心根の『上から目線』」がありすぎ。
それでいて「表面的な『上から目線』」にゼロトレランスなのはちゃんちゃらおかしいのだが、まあ連中はここら辺を矛盾に感じないらしい。
連中は表面的なコミュニケーションしか出来てないってのがこの辺から分かる。
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信者は死ねと常々思っているが、それとこれとは別の話)
2025/07/01(火) 20:20:08.26ID:4pZHV5xo0
そうではなく
OSレベルで自動変換が行われているのに
言語レベルの自動変換に文句言うのもなんだなぁと
そういう話
2025/07/01(火) 20:35:01.95ID:M5z4vIa80
>>879
その意味なら、OSレベルの自動変換はされてないぞ。

例えば、SJISファイルはSJISファイルとして保存されてるだろ。
Windowsに保存する限りあらゆるファイルが自動的にutf-16にされ、
もう二度と各ファイルのエンコードを気にする必要がないのなら、大半の人はこの方が助かるとは思うが。(俺もこれでいい)
同様に、.NETでファイルストリームを開いたら、あらゆるエンコードが自動的にutf-16になって見える、って事もないだろ。
(APIチラ見する限り、Text.Encodingがあるから手動で切り換えのはず)

ただこれを目指した物がBOMなのだろうけど、上手く機能してるとは思えないね。
2025/07/01(火) 20:40:05.31ID:4pZHV5xo0
sjisファイルを読み込んでメモ帳で表示させる場合、内部のレンダリングエンジンとかはutf16に変換されたものじゃねえの?
それをまたsjisで保存する際には変換されてる
2025/07/01(火) 20:41:51.49ID:4pZHV5xo0
winapiのA系もutf16に変換されてる表示されているんじゃないの?
2025/07/01(火) 20:42:58.47ID:4QEmYdel0
>>880
A 付きの API は OS が変換するよ。
ファイルの読み書きもロケールの設定によっては変換する。
わかりやすく観測しやすい例としてはファイル名は変換してる。
そもそも NTFS の規格からしてファイル名は Unicode が前提だし。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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