C言語なら俺に聞け 164

2025/07/23(水) 15:30:01.81ID:eCR5cXRr0
(新スレ立ての際上記コマンドを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言語なら俺に聞け 163
https://mevius.5ch.net/test/read.cgi/tech/1721137434/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
7デフォルトの名無しさん (ワッチョイ dffd-k2hJ)
垢版 |
2025/07/23(水) 19:49:43.45ID:cQ85VHpL0
ボイス・トォ・スカル自動応答システムが下記でできるようになりました

リアルタイム翻訳の「DeepL Voice」がZoom Meetingsと連携開始、対応言語を拡大
https://news.mynavi.jp/techplus/article/20250723-3387014/

Copilot+ PCに最新のAI機能登場、7月のプレビュー更新プログラム「KB5062660」
https://news.mynavi.jp/techplus/article/20250723-3386867/
>>MicrosoftはWindows Insider Programでテストしていた設定アプリのAIエージェントを正式にリリースした。
※AIで何ができるかを全て書いている
2025/07/23(水) 19:52:38.68ID:3gCX+5nZ0
建て直しまでは不要やろ。
9デフォルトの名無しさん (ワッチョイ dffd-k2hJ)
垢版 |
2025/07/23(水) 20:08:17.09ID:cQ85VHpL0
・ボイス・トォ・スカルをAIに任せていると誤作動を起こしている
・間違って関係ない人を攻撃し始める


「フクロウ好きなAIが生成した数列」で調整したAIもフクロウ好きになってしまう「サブリミナル学習」が起きる理由とは?
2025年07月23日 19時00分
https://gigazine.net/news/20250723-subliminal-learning-hidden-signals-data/
>>研究チームはサブリミナル学習について調べるための実験を行いました。実験では、まずはベースモデルから「特定の動物が好きな教師モデル」を作成し、数列やコード、思考の連鎖(CoT)といった狭い領域でデータを生成させました。このデータをフィルタリングして特性に関する明示的な言及を除外した上で、生徒モデルのファインチューニングを行い、最終的な生徒モデルがどのような特性を示すのかを評価したとのことです。
>>実験の結果、ファインチューニングに使われたデータには特性への明示的な参照や関連性がないにもかかわらず、生徒モデルは「教師モデルが好きな動物」を好きになることが示されました。
>>研究チームはデータに隠された特性を検出するため、大規模言語モデル分類器や文脈内学習による検出を試みたり、手動でデータを調査したりしたものの、行動特性を伝達している兆候を確認することはできませんでした。これは、サブリミナル学習における行動特性の伝達が、意味的に関連しない生成データ内のパターンに起因していることを示唆しています。
2025/08/20(水) 10:08:45.42ID:704yfGVq0
スレ立て乙です
11デフォルトの名無しさん (ワッチョイ 4f72-Nq1z)
垢版 |
2025/09/19(金) 16:53:51.70ID:I8uDgIdj0
printf("Hello world.\n");
実はコレ初心者には深い意味は理解できない。
2025/09/19(金) 18:20:32.71ID:J/qkDf0K0
くだらね
13デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
垢版 |
2025/09/19(金) 19:00:56.16ID:I8uDgIdj0
まぁ初心者はそう思うやろ
2025/09/19(金) 19:40:35.09ID:/rC1fsI+0
printf("Hello work.\n");
2025/09/19(金) 19:47:10.09ID:J/qkDf0K0
>>13
じゃあその深い意味を説明してみろよ
添削してやるから
16デフォルトの名無しさん (ワッチョイ 0f2a-Ebmg)
垢版 |
2025/09/19(金) 20:28:54.31ID:54KHg9aZ0
>>11
下記に何かしら含意を感じましたが、意味は理解できませんでした。
・'H' が小文字でない。
・カンマで区切られていない。
・ピリオドで終端された。
17デフォルトの名無しさん (スフッ Sd5f-ilUi)
垢版 |
2025/09/19(金) 20:38:58.85ID:c/emMdhgd
\nは一文字だが環境によっては実際に印字される文字数が変わる話か
2025/09/19(金) 20:51:06.48ID:GaQCh7ZTM
脈絡なしに突然上から目線で語り始めるのは老害じじいの特徴
19デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
垢版 |
2025/09/19(金) 21:15:49.58ID:I8uDgIdj0
>>16
全然違うんだよなあ
20デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
垢版 |
2025/09/19(金) 21:17:56.30ID:I8uDgIdj0
>>17
ああ確かにそれはある。
0d, 0aだったり0aだったりするな
21デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
垢版 |
2025/09/19(金) 21:20:05.58ID:I8uDgIdj0
>>18
分からないのか悔しいクズの他責思考
22デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
垢版 |
2025/09/19(金) 21:32:26.80ID:I8uDgIdj0
一般的な仕様
定義 #include <stdio.h>

int printf ( const char * format, ... );

※C99規格では以下の定義となる
int printf ( const char * restrict format, ... );
23デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
垢版 |
2025/09/20(土) 09:04:05.64ID:Soi7OpC10
https://qiita.com/kaityo256/items/6ca69143901a02b32a85
2025/09/20(土) 11:05:51.36ID:1eZiY7gC0
printfの戻り値について、有効な使い方を教えて
25デフォルトの名無しさん (ワッチョイ 8fda-Ix7K)
垢版 |
2025/09/20(土) 13:40:53.82ID:ShY3+uSC0
プリンターのトラブルで印刷に失敗したらエラーを返す
2025/09/20(土) 14:28:17.33ID:OerDkwpVa
そっかー
すでに終了してる書き込み先のプロセス(パイプで接続)に書き込んだときのシグナルって、なんだったかな
2025/09/20(土) 14:31:14.70ID:OerDkwpVa
SIGPIPEか
28デフォルトの名無しさん (アウアウウー Sa53-ilUi)
垢版 |
2025/09/20(土) 16:58:37.16ID:VevbIipia
特定の実装でたまたまそうだったからと言って
全ての実装でそうなっているかどうかは別の話
優しくしてね
2025/09/20(土) 17:25:51.73ID:1eZiY7gC0
霊界通信だな
2025/09/20(土) 17:26:59.16ID:+Sf+AUyNM
ID:I8uDgIdj0 このprintfじじい何言おうとしたか忘れたな
31デフォルトの名無しさん (ワッチョイ 0af8-p2ny)
垢版 |
2025/09/21(日) 04:07:46.37ID:Obb0mglL0
内部通報で無理なので犯罪者通報

暗黒状態の量子もつれを生成することに成功:世界初の快挙
公開日2025.09.10 18:30:27 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/184832
>>量子もつれが非常に壊れやすく、外界のノイズ(熱の揺らぎや周囲からの電磁波など)によって簡単に消えてしまうことです。
>>このノイズによる量子もつれの崩壊現象は「デコヒーレンス」と呼ばれ、量子技術が実験室の外で広く実用化されるのを妨げる最大の壁となってきました。

・どうやって地上で行えるのですか?
・ 嵐の中や甘風が強い中での車での走行中などどうやって維持しているのかな
・UFOは重力県内でテレポートしている偽物だろう?

・統合失調症から見て犯人不明で周囲の人は知っているかもしれませんが宇宙人だと名乗っているのとテレポート技術を所持している
・7人殺害した
・お前で埴鎮目だ
・殺害した人野事を晩酌で高笑いをしている
・お前「被害者=統合失調症=24実感365日幻聴などの幻覚あり」を人質に立てこもる
・絶対に殺させる「自殺か殺人かは不明ですがさせる」
・コロな症状を引き起こせる
※など上記の事を話してきた

ここにも愉快犯の犯人組織が居るだろう!
32デフォルトの名無しさん (ワッチョイ 07cf-Z3W9)
垢版 |
2025/09/23(火) 07:07:11.79ID:yrK5wSNc0
そもそもprintfなんて初心者しか見ないからなw
33デフォルトの名無しさん (ワッチョイ 6aee-lG8I)
垢版 |
2025/09/23(火) 07:49:44.65ID:qmWEk+ay0
まじかよ20年以上使ってる俺は恥知らずかなんかなのか?
printfファミリーは標準ライブラリではぶっちぎりのイケメンだと思うんだが
何年か前に買ったマイスターシュテックって万年筆にも「snprintf」って名入れしたくらいだし
ちなみに標準ライブラリで次に好きなのはsize_t型とNULLマクロ
2025/09/23(火) 14:22:38.23ID:Opf++eei0
printfはスピートが遅いからなあ
2025/09/24(水) 12:40:37.19ID:fylTkn+t0
組み込みでも無い限りらprintfで充分だろ
2025/09/24(水) 19:27:33.73ID:Z7gG6kHJ0
printfじゃないならなに使うの?
2025/09/24(水) 20:03:29.17ID:cUnaCE/P0
printf多用する場面ってそんな速度必要か?
テキスト表示のアクションゲームでも作るんか?
2025/09/24(水) 20:34:19.07ID:EXobIxwL0
ちなgccならputsに置き換え可能なら勝手に置き換える
2025/09/26(金) 13:37:49.15ID:XlYbxwe30
今時プアなマシン使っているので無い限り
実行速度難敵にする奴いないだろう
2025/09/26(金) 16:32:57.14ID:ePhQUwKm0
プアなマシンを使っているのでやっぱつれぇわ
2025/09/26(金) 17:25:52.87ID:jSwTkQnE0
かつてプアだった頃、他の奴が16ビットPC使っている中自分だけ8ビットPC(nec PC8001mk2)使って蔵書管理プログラム書き上げたな。漢字も扱えてたよ。出力はEPSONのMP80というカナ印字ドットインパクト、これの1/2ドット改行隠しコマンド見つけて16ドット漢字出力させてた。漢字ROMからのイメージ取得や展開にアセンブラも使用。実用性は殆どないが、勉強にはなった。
42デフォルトの名無しさん (ワッチョイ a7ae-H/EM)
垢版 |
2025/09/26(金) 17:27:17.64ID:mAe57PPo0
プログラム内にデータ組み込んじゃってて使えないやつだろw
43デフォルトの名無しさん (ワッチョイ ff44-Z3W9)
垢版 |
2025/09/26(金) 18:19:46.34ID:KFYhndY80
今のprintfはコンパイル時にパラメータtypeチェックまでやってて
安心だけど気持ち悪さもあるw
2025/09/26(金) 19:32:39.45ID:jSwTkQnE0
printf(null);
45デフォルトの名無しさん (ワッチョイ 1e2a-ljyC)
垢版 |
2025/09/26(金) 19:46:41.37ID:cwuxLqkb0
$ gcc printf_null.c
printf_null.c: 関数 ‘main’ 内:
printf_null.c:4:10: エラー: ‘null’ が宣言されていません (この関数内での最初の使
用)
  4 |  printf(null);
   |     ^~~~
2025/09/28(日) 12:37:58.28ID:l7keiZEP0
printfに謝れ
47デフォルトの名無しさん (スフッ Sd43-LKjL)
垢版 |
2025/09/30(火) 09:15:55.03ID:RGUapuF/d
Mingw の mkdir には
mkdir(path, mode)
mkdir(path)
があるけど
Windowsにmodeが意味ないのはわかるけど
一緒にしといて欲しかった
48デフォルトの名無しさん (ワッチョイ d9e7-ayY8)
垢版 |
2025/10/12(日) 01:15:00.07ID:DKsy7+ZR0
>>47
mingw系はあまり知らぬのだが…それでも一般論として設計の筋が悪いことはわかる

mingw(or 今流行りはフォークの-64だっけ?)はlinux上でwinターゲット、あるいは(こっちも可能だけど少数派?)win上でlinuxターゲットのバイナリを吐くためのものなので、なおさらそうだろう

たとい無意味なmode引数であれ、プロトタイプを同一にするために受け付けるべきだろう
要らぬのならば捨てよ、互換性が何より優先されることだ
捨てて困るなら独自に解釈して適当なマップしなさい

最小例として
```
int my_mkdir(char const restrict * path, [[maybe_unused]] mode_t mode) {
return mkdir(mode); //mingwのmkdir
}
```
もしmode捨てて困り、アホほど暇なら、独自にmodeを解釈してntfsの同等物へ適切にマップしなさい

そしてその場合でも人が無用に混乱せぬように、その意図を以上のようなラッパでも書きなさい
49デフォルトの名無しさん (ワッチョイ 0b3c-ayY8)
垢版 |
2025/10/12(日) 06:33:04.28ID:mEdnxwe/0
そういやmsvcの_mkdirもconst char * pathの1引数だな

>>24
初めに文字数を数えた後(固定ならstrlenでもformat directiveで変わるならsnprintfとかでも)、printfの返り値との差をとり0にならないならば全て正しく書き込めてない
文字列を指すポインタを書き込めた数だけ増分した後に、先に得た差の分だけもう一度書き込む
50デフォルトの名無しさん (ワッチョイ 0b3c-ayY8)
垢版 |
2025/10/12(日) 06:48:57.50ID:mEdnxwe/0
もちろん2回以上も失敗しえるからループで回して返り値が0になるまで、あるいはretry回すこと
また負値が出たら当然exit()すること

私はstdarg.hを使って
int printf_ensure(const char restrict * fmt, size_t retry, ...);
のようなプロトタイプにしている
(retryが0ならば無限試行)

速度が問題でない場合、あるいは開発中は全部コレでprintfやputs差し替えたっていい
マクロでトークンprintfをprintf/printf_ensureで切り替えられるようにしておくとなおよい
51デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
垢版 |
2025/10/14(火) 00:04:27.04ID:/oJzs4X00
Cのマクロでテンプレート(ジェネリクス)もどき。
C11以降で使える総称選択(_Generic)はジェネリクスというよりオーバーロード。

やっぱりCにもテンプレート欲しい。
(記憶が確かならC++のテンプレートは関数スコープ限定のマクロみたいな仕組みで、コンパイル時に型決定するのでパフォーマンスに影響しなかったはず)

#include<stdio.h>
#include<stdlib.h>
#define N 5
#define MT int
#define MV int
#define PT int
#define PF "%d,"

void mymap(MV (*)(MT), const MT*, const int, MV*);
void print(const PT*, const int);
MV inc(const MT);

関数の頭文字(または関数名)+(T,V,U)な命名規則で#defineする。
2025/10/14(火) 01:00:24.48ID:eWh2Zlis0
c++の必要なとこだけ使えばいいだろ
53デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
垢版 |
2025/10/14(火) 07:01:23.65ID:/oJzs4X00
やっぱそうなるよね。
まあ、組み込みとか必ずしもC++があるとは限らない環境でなんちゃってテンプレートの例みたいな感じで。
2025/10/14(火) 07:43:06.49ID:sdOVA3sO0
c++が使えないけど最新のcが使える環境ってのもレアじゃね?
大抵c89、運が良くてc99
2025/10/14(火) 09:00:12.91ID:7xcmZphY0
Z80 がターゲットでもモダンな C コンパイラがあるよ。
56デフォルトの名無しさん (ワッチョイ 291a-BKKF)
垢版 |
2025/10/14(火) 09:51:45.01ID:XRQnYg770
マイコン用ならC健在だろ
57デフォルトの名無しさん (ワッチョイ c921-oeTl)
垢版 |
2025/10/14(火) 12:31:26.84ID:bZlqEbcX0
そういう用途ならRust一択
58デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
垢版 |
2025/10/14(火) 17:14:48.06ID:/oJzs4X00
>>54
一応、なんちゃってテンプレートはC89でも使える。

>>57
Rust処理系あるならそっちのが良いけど、まだCPU選ぶんだよね…。
2025/10/14(火) 17:59:04.47ID:7xcmZphY0
演算子オーバーロードを使えるように拡張した C 処理系は知ってるけどテンプレートは見たことないなぁ……
色々な機能がお互いに関連するだろうし、テンプレートだけをポンと入れられるようなもんでもないと思う。

C を経由してコンパイルするタイプの言語 (処理系) でパラメトリック多相を使えるものを検討したらどうだろう。
nim あたりなら組み込みシステムにも使えるんじゃないか? 知らんけど。
60デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
垢版 |
2025/10/15(水) 07:14:26.88ID:wJCBzpoD0
思えば、C++ない組み込みだったらそもそも浮動小数点数をが無いし、charは文字型と同時に1バイトの整数型だから最悪long型で作れば暗黙的型変換で行けるわ。
組み込みでC++あるならテンプレート+Cで速度も落とさず行ける。
(C++はCより2倍遅い)

とはいえ、仕事だとC++の既存資産を無視するわけにも行かんか。
理論上、密結合なOOPより疎結合な高階関数の方が再利用性高いとはいえ、一から作ったんじゃ開発速度が犠牲になる。
現実はかくも難しい…。
2025/10/15(水) 09:31:18.63ID:fds2kZQR0
cコンパイラしかないようなマイコンなんてコードの規模小さいだろ
余計なことせずに愚直に書いとけ
2025/10/15(水) 15:50:44.46ID:w9oCtp+dp
いまどきのマイコンはpythonだって使えるだろうに
2025/10/15(水) 17:37:28.97ID:i/5qI1MW0
メモリー64kBでもいける?
64デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
垢版 |
2025/10/15(水) 18:42:39.89ID:9wU7ax+y0
何百円、あるいは何千円の石の話だよ
一個¥10の石ならまだまだcかアセンブラしか無理だろ
65デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
垢版 |
2025/10/15(水) 18:45:39.97ID:9wU7ax+y0
まあ趣味で一つプログラムするならなんでもいいけど
ある程度量産するならコスパが十倍-百倍違うのは致命的
66デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
垢版 |
2025/10/15(水) 20:40:36.66ID:wJCBzpoD0
>>63
多すぎる。
512Bとか256B(1kBすらも無い)とかがCやアセンブラしかない世界。
2025/10/16(木) 18:01:41.31ID:J2Om8XvC0
我が家みたいだ
2025/10/16(木) 18:37:01.53ID:CvxVt5ew0
>>66
そのマイコンの型番教えてくれ
69デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
垢版 |
2025/10/16(木) 20:29:12.39ID:Aijr1hHS0
マイコンってかマイクロコントローラーだけどPICとかAtmelとかでいっぱい見かけるよ。
1個10円とかのは大体マイクロコントローラー。
秋月電子のストアならデータシートのPDFをDL出来るんで、細かい仕様はそれを見る。
2025/10/17(金) 00:24:14.63ID:H6PCthuK0
>>68
https://akizukidenshi.com/catalog/g/g104575/
↑とか
https://akizukidenshi.com/catalog/g/g127731/
↑とかRAM控えめだぞ
71デフォルトの名無しさん (ワッチョイ d93b-8Mv9)
垢版 |
2025/10/18(土) 01:03:37.15ID:QXVDdQSx0
>>66
そんなんじゃprintfすら作れないよw
2025/10/18(土) 04:22:07.50ID:dGhvIuNM0
シリアルコンソールもない規模なのにどこにprintfするんだ
2025/10/18(土) 06:34:34.64ID:14jVJINw0
いまだにprintfデバッグやってるジジイ
2025/10/18(土) 11:43:31.92ID:VPIL6AOJ0
> 256B
関数(サブルーチン)1個作って終了だな。
2025/10/18(土) 12:08:07.87ID:BOmFuCmI0
>>63
Cマガの付録のLSI-C試食版ではタイニーモデルは出力できなかったな
2025/10/18(土) 12:10:03.61ID:ZlX7tru0a
メモリが64Kではタイニーも動かないか…
77デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
垢版 |
2025/10/18(土) 12:34:26.68ID:fcM0D1al0
>>73
gdbも使いはするが
ちゃんとfflushするか、ちゃんとstderrへのfprintfで記録取る限りにおいて、printfデバッグは今でも十分役立つと思うが
むしろデバッガと相補的
78デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
垢版 |
2025/10/18(土) 12:40:57.58ID:fcM0D1al0
>>69
個人趣味レベルでもある程度量産することはあるからね
マイコン価格には十円単位で気を使ってるよ
あなたのいうPICキットには1台で次々沢山焼く機能あるしな、数百個くらいは余裕
>>65だけど100個焼く石がもし数百-千円クラスなら普通に万-10万消えて泣ける
2025/10/18(土) 13:05:23.67ID:VGmkc9k80
量産して売るのか?
80デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
垢版 |
2025/10/18(土) 13:10:13.42ID:fcM0D1al0
いやプロとかしゃなくて同人即売会で売るレベルですはい
それでも百個くらいは要るでしょ
2025/10/18(土) 14:09:15.39ID:nzcjRHht0
デバッグは、Lチカの有無で地道にやるんだよな
82デフォルトの名無しさん (ワッチョイ f98d-tYC9)
垢版 |
2025/10/19(日) 19:31:28.29ID:+nDAwDri0
>>66
コードセグメントデータセグメントが1kb単位でしか指定できなくて発狂
83デフォルトの名無しさん (ワッチョイ 3110-bIaP)
垢版 |
2025/11/08(土) 09:43:07.20ID:rVUu3J9Q0
C99はitoa無くなったん? なんで?
2025/11/08(土) 10:25:48.38ID:Ed4kLbQS0
>>83
無くなったというか規格に入ったことはないはず。
POSIX (やその後継である SUS) にも無い。
2025/11/08(土) 10:47:36.79ID:fNGE7Dndp
そもそもCで文字列操作する気にならない
2025/11/08(土) 10:57:45.77ID:sZf9RtQU0
でもUNIXのI/Oは基本バイトストリームで文字列指向だから切り離せないでしょ?
基盤やライブラリがやることだから低レベルに書きたくないんならわかる
2025/11/08(土) 11:15:17.81ID:fNGE7Dndp
C全盛期にインターネットが一般的になってたら
有名なライブラリがその辺りを補完しまくってくれたのかなぁ
2025/11/08(土) 12:09:11.14ID:+ABJpypp0
>>85
ACSIIで固定長なら何も問題ない。そしてbash等はそれで出来てた。
utf-8で可変長(=今の一般的なstring)なんてCでやると死ねるだけ。
2025/11/08(土) 14:42:52.89ID:05Df+FUf0
スクリプトで処理することも多いし
基本は文字列で扱うな
90デフォルトの名無しさん (ワッチョイ 42ad-bIaP)
垢版 |
2025/11/08(土) 16:40:45.22ID:L8SrJpz20
itoa() というか、数値から文字列への変換となると文字列の長さがどうなるか分からないから消滅したのでは?
かといって sprintf() は健在だが、おすすめは snprintf() だな。(GNUだと asprintf() ってのもあるな)
2025/11/08(土) 18:49:14.49ID:+ABJpypp0
sprintfのbuffer*にヌルポを指定するとbufferに書き出さず単に出来上がり文字列の長さだけ返す、
みたいな仕様があったと思ったが、かなり特定環境の話かこれ?
(他関数と勘違いしてるかもだが、思い出せないし、ググッてもよく分からん)
2025/11/08(土) 19:24:13.72ID:NSK/JYYK0
snprintfの返り値がそういう動作だから
長さだけがほしいときヌルポじゃなくバッファ長を0にする
manpageを信用するとだいたいは叶うけど昔のSUSv2ではエラーと書いてるね
2025/11/08(土) 20:00:28.59ID:+ABJpypp0
それは多分、推奨が変わって、それに合わせてmanページも書き換えられただけではないかと。
MSにはscprintfという、長さだけを返す関数が用意されている。
(s*printfのbufferがヌルポだとエラー、おそらく型チェックを厳しくする為に分離したのではないかと)
https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/reference/scprintf-scprintf-l-scwprintf-scwprintf-l?view=msvc-170
2025/11/09(日) 15:49:06.10ID:BHEHF4AV0
長さって言うと、バイト数か文字数かで悩む
2025/11/09(日) 15:56:50.51ID:avBvNiuDp
マルチバイト文字なんてC言語が考慮してるはずが無いだろ
全部外部関数だからなあれら
2025/11/09(日) 17:54:10.57ID:BHEHF4AV0
どの範囲が内部関数なんでしょうか?
2025/11/09(日) 18:08:54.56ID:rjZkXEAW0
stdio.h等、K&Rに記載されてる範囲じゃね?
(勿論sprintfも記載あり)
2025/11/09(日) 18:38:57.72ID:1hA+Ej0k0
こういうときK&R持ち出してくる意図がわからん
80年代で頭が止まってるのか愉快犯なのか
2025/11/09(日) 19:57:32.76ID:rjZkXEAW0
俺は80年代で頭が止まってるが、K&Rは今でも名著で読む価値があるのも事実だろ
(というかCが変わって無さ過ぎなだけだが)
Zにはドラゴンボールハラスメントなのかもだが
100デフォルトの名無しさん (ワッチョイ 7f2a-Nex0)
垢版 |
2025/11/09(日) 20:21:54.18ID:ZW4cfheS0
今どきK&Rかよ! てのは昔からいる。超カンタン○○言語なんてのを有り難がるのだけど、なぜか原典の類いには絶対当たらない。
2025/11/09(日) 20:36:39.24ID:rjZkXEAW0
得る知識量/文字数、というZ的コスパなら、K&Rに勝る本は他のプログラミング言語含めても無いよな
その分端折りまくりだし、そもそも既にプログラミング出来る人向けに書かれているので、初心者には向かないが

しかし本来は、K&Rに勝る本を誰かが書いて、葬ってやるべきなのだろうけど、
あれ以上エッセンスだけ凝縮するのも無理よねって事で今に至るわけだし
2025/11/09(日) 20:48:05.83ID:1hA+Ej0k0
標準ライブラリの話なのに何とんちんかんなこといってんの
準拠してる規格か処理系そのものに依存するから古典みてもわからんでしょ
当時の知識でもヘッダやライブラリの場所から当たりはつくけどな
2025/11/09(日) 20:58:39.28ID:rjZkXEAW0
>>102
ならお前が>>96に対する、俺より分かりやすい回答を出せば済んだ話だろ
それもせず、とんちんかんな方向のレス付けたのはお前自身なのに、他人のせいにする所はZ仕草か

まあ話を戻す気があるなら、とりあえず>>96に回答して、その分かりやすさを俺97と競うべきだよ
それも出来ないなら、ああやっぱりZは、と言われ続けても仕方ないだろうよ
104デフォルトの名無しさん (ワッチョイ 9f45-rgYF)
垢版 |
2025/11/09(日) 21:03:11.42ID:LFf9m6Ev0
K&R馬鹿にしてるのもZ連呼してるのも傍から見てたらどっちもアホですわ
2025/11/09(日) 21:10:40.56ID:1hA+Ej0k0
バカにはしてないむしろ信奉者だし
アホなのはそのとおり
ウソが知識不足からか故意なのか気になっただけ
書けば質問者への気づきにもなるしな
2025/11/09(日) 21:24:36.18ID:rjZkXEAW0
>>104
だからそういうのは要らねえから、さっさとお前流の>>96に対する回答を書いて勝負すればいいわけ


というかね、完全に脱線するが、
例の非韓三原則「韓国人には、教えない、助けない、関わらない」とか、
Kの法則、「韓国(人)に関わると不幸になる」というの、ありゃ何だろうなと思ってたんだが、
数年前には俺なりに結論が出てしまった

あれはな、連中は、「自分を上げるのではなく、他人を下げる事」しかしないからなんだ
そして、ゆとりやZも同様の傾向があるから、そうならないように意識して注意した方がいい
それはお互い足を引っ張り合ってるだけであって、高める方向ではないから

今回もそうだろ、他人にケチを付けるだけで、自分でよりよい回答を出そうとはしない
だから結果的に、よりよい回答を得られる機会を失い、罵りあう状況を生み出してる
受け方を間違えなければ本来プラスに持っていけた所が、マイナスになってしまってる
ここら辺が、ゆとりやZがコミュ障で困る部分なんだよ

だからお前達は自分達世代だけではマトモに会話出来る場所を持てず、
年上世代が蔓延る5chに寄生するしかなくなってる
その辺もちゃんと自覚した方がいい

5chで偉そうに講釈垂れつつ、裏で必死にググって理論武装しつつ、という俺ら世代の馬鹿共も、
この点はゆとりやZとは正反対で、きちんとプラス方向に寄与してたわけ
だから5chは生き残って来れてるわけでね

>>105
同上。
107デフォルトの名無しさん (ワッチョイ 7f94-u/J9)
垢版 |
2025/11/09(日) 21:55:55.88ID:iuqP4JEu0
そもそもCで外部内部関数なんて概念がナンセンスだろ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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