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
2025/07/23(水) 15:31:40.26ID:eCR5cXRr0
>!extend:checked:vvvvv:1000:512
>(新スレ立ての際上記コマンドを2行書き込んでください)
1行しか書き込まなかった
すまん
2025/07/23(水) 15:50:50.63ID:3gCX+5nZ0
C23 の最終ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf

前スレで補足されてるんだから直しておきなさいよ……。
2025/07/23(水) 16:26:36.12ID:eCR5cXRr0
おー、ごめん
2025/07/23(水) 17:42:37.36ID:3gCX+5nZ0
せっかく公式サイトが出来たのに忘れてた……
https://www.c-language.org/

これがあればドラフトを個々に貼るのはやめてもいいかもね。
2025/07/23(水) 19:21:57.84ID:eCR5cXRr0
立て直すのがいいんなら立て直します
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
まあ趣味で一つプログラムするならなんでもいいけど
ある程度量産するならコスパが十倍-百倍違うのは致命的
レスを投稿する

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