C言語なら俺に聞け 162

■ このスレッドは過去ログ倉庫に格納されています
2023/10/30(月) 17:13:00.82ID:hHEGE8Ol0
!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言語なら俺に聞け 161
https://mevius.5ch.net/test/read.cgi/tech/1682053520/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2024/04/11(木) 23:49:41.77ID:0Tmkq/lZ0
いまさら言って仕方ない事をいちいち書くなよ
お前が次のC言語でも作って人生を棒に振ればいいだけだよ
2024/04/12(金) 00:17:11.46ID:nGLEgXOo0
>>667
便所の落書きにぶちギレw
お前の人生はいつも焦燥感に満ちてんだろうなw
669デフォルトの名無しさん (ワッチョイ df01-B3tP)
垢版 |
2024/04/12(金) 00:21:54.57ID:GtdzNQir0
>>655
後に現れたC++のiostreamがシフト演算子をオーバーロードし入出力演算子として流用するのに
好都合で、思わぬ役に立つことになったからまあ良いだろ。もしシフト演算子が四則演算子より
優先順位が高かったら、cout << 1 + 2 * 3 << endl を cout << (1 + 2 * 3) << endl と
書かなければならず面倒だった。(C++がシフト演算子を全く別の機能に流用したのは不適切
だったという意見もあるが…)
2024/04/12(金) 01:13:09.53ID:nGLEgXOo0
>>669
シェルのリダイレクトと概念が一致してるから、最初見た時は天才かよと感心したな
でも、出力の整形が激ムズなんでやっぱり駄目じゃんと気付くまではそう思ってた
671デフォルトの名無しさん (ワッチョイ e2ad-lyNC)
垢版 |
2024/04/12(金) 02:09:51.24ID:Wv2Zy+UZ0
>>656
*pc++ はまず *pc の処理をする。これで pc の差している先にある値を取り出すことになる。その次に pc を一つ分進ませる(実際に加算される値は sizeof(*pc))。
では最初に *pc で取り出した値はどこへ行ってしまうのか? それは何にも使われずにただ捨てられる。
2024/04/12(金) 07:08:32.50ID:gi41fiD00
*pc++の形はcやってたら所々で見るから否応なく慣れる
個人的にはケチくさい書き方で避けたい気持ちもあるがまぁそういう文化が根付いてるなら合わせざるを得ない
2024/04/12(金) 07:39:02.10ID:661KRJs/r
>>665
初期のCでは||が無くて論理和も|使ってたためのはず
KかRのどっちかが「後悔してるけど今さら変えられないし」とか言ってた
674デフォルトの名無しさん (スッップ Sd02-3rFQ)
垢版 |
2024/04/12(金) 12:25:07.52ID:OadUyd3Md
C言語の標準化委員はC++のほうも兼任してたりするから、ぶっちゃけC言語の改善にはやる気無しだから。
2024/04/12(金) 13:28:21.08ID:Lm13J0L60
C++もやる気無しだろ
2024/04/12(金) 14:41:57.50ID:nGLEgXOo0
C++はRustと比較されて安全性に劣るとレッテルを貼られて、どうしたもんか考えあぐねてるところだろうw
言語の拡張に対して完全に方向転換を強いられてるのは間違いない
それはCも一緒だな
2024/04/12(金) 14:53:32.51ID:nGLEgXOo0
パフォーマンスを損なわずにRustと同等の安全性を追加するか、もうこのままそっとしておくかw、の2択だろう
2024/04/12(金) 15:20:27.37ID:dUdcEEpod
>>674
もはやbetter Cでも何でもないのに、このスレでも繰り返しc++の話題出す奴居るし、やっぱユーザーも被ってるんだろな

まあCの設計の良否を他言語よりは比較的小さな差異から論じるのに有用だとは思う
おれみたいにC++は書かずともcpprefとか読んで式や文、宣言など局所的な構文知識だけちょっとある人は多かろう(ClassとかCに無い概念は読み飛ばしてて無知)

生まれた順序が逆だけど、FortranがC++とすればF言語/JuliaがCだね
大体サブセット+独自進化、標準化コミュニティ丸被り
679デフォルトの名無しさん (スッップ Sd02-3rFQ)
垢版 |
2024/04/12(金) 16:33:17.52ID:OadUyd3Md
C++は好きじゃないからC言語はもっと改善していって欲しい。
nullptr型とか入るの遅すぎじゃね?
2024/04/12(金) 22:48:41.07ID:fQv3jEzD0
C++はCの機能を保ったまま、ありとあらゆるプログラミングパラダイムを突っ込んだもの
それがベターかどうかは人によるな
ただ、Cと互換性を保ったままそこまで進化したのは奇跡に近い
2024/04/12(金) 23:16:21.33ID:pf6tTSyT0
Cは概ねC++のサブセットだからしゃーない
2024/04/13(土) 00:06:24.07ID:c7UXCLXT0
でも、Rustが安全性と性能は両立出来ることを証明してしまってから、一気に旗色が悪くなったw
今まで性能を免罪符にして、多少(かなり?)の安全性を犠牲にしてきたけど、もはや通用しない時代になった
今後どう進化するか見物だな
Cだって対岸の火事ではない
2024/04/13(土) 01:23:26.45ID:c7UXCLXT0
ちなみに、Rustは安全な代わりに書きたいコードを書けるとは思わない方がいいw
これは書いてみないと分からん感覚だ
書きやすくて安全な言語は存在しないことも証明されたw
684デフォルトの名無しさん (ワッチョイ e2ad-ZiZa)
垢版 |
2024/04/13(土) 07:18:38.29ID:SxW/5mRR0
慣れの問題では?
2024/04/15(月) 00:15:31.26ID:kwd7Pf0A0
必ず遠回りをさせられる感覚は非常にムズムズするよな
あれならgccでstack-protectorとかsanitizeとかガン盛りした方が
気分良く高効率に書けると思った
2024/04/19(金) 20:19:37.90ID:5JxGOdzk0
今日から戯れに数十年前のx86なGUIのソースをx64に移植し始めたんだが
とりあえずエラーになるGetWindowsLongだかをx64用に書き換えていったらそこそこ動いてしまって、後は文字列が関係する処理だけだ
俺が書いた過去のコードがよっぽど優秀だったようだ
やはり若い頃にソースを沢山書いといてよかった
2024/04/19(金) 20:37:53.24ID:5JxGOdzk0
x64化でちょっとsize_tの扱いで躓いたので書いておこう
ポインタが64bitだから、その差を取る場合もあるsize_tも64bitなのは理屈では理解できるんだが
明らかに64bit幅が不要な箇所でsize_tに出くわすとおいおいと思ってしまう
これはbit数を明示した型を別に定義した方がよさそうだ
ああまいったまいった
2024/04/19(金) 23:35:27.85ID:uO847wzt0
>>686
Windows1.0のexeもWindows10(32bit版)でも動くからな
64bit版は16bitコードの実行が廃止されたから無理
APIの方は割と変わってるけど、それでもちょっと直せばビルドできる
優秀なのはMicrosoftの方だなw
2024/04/20(土) 09:49:57.99ID:U6z53Ozt0
温泉旅館の増改築やらせたらMSに敵う奴はいない
2024/04/21(日) 10:27:21.32ID:Y4YQdA//0
Windows11は最初から32bit版が無いんだよな…
ポインターに64bitも必要ない
36bit(64GB)有れば十分
farとnearポインター復活しても良いよw
2024/04/21(日) 10:58:55.51ID:WM7IEXRid
win10使ってるけどOffice 97をバイナリコピーして使ってるぞ、とうとう11では動かんのか…?
主にExcel使うが関数の数は劣ってもヘルプは古い方がよく出来てて一般ユーザとしては好み、一々ブラウザ起動されてたらい回しは嫌だ
2024/04/21(日) 11:03:42.61ID:z3GhIJnT0
可変長サイズのポインターは斬新
2024/04/21(日) 13:02:16.05ID:kDNr1IJ/0
Office97は32bitだから動くでしょ
駄目なのはWindows3.1までの16bitアプリ

じぶんもフリーソフトをいくつか64bit化したけどほとんど修正してない
早めにUnicodeにしてたおかげもあるかな
2024/04/29(月) 16:02:47.44ID:JmumYEsm0
16bitアプリって、今も残ってたっけ?
2024/04/29(月) 17:53:08.72ID:Mi5d5RVO0
あえて使う人もあんまりいないだろうけど、メンテナンスが止まってる(32bit 化、64bit 化されない)ようなソフトを使いたいってことはそれなりにあることじゃないの。
メーカーがつぶれて消えたりするのもよくあることだしな。
696名無し兎と鰻の大乱闘 (ワッチョイ dffd-02Vv)
垢版 |
2024/04/29(月) 19:42:16.62ID:Yc7GJpMD0
そもそもしーげんごってなに?
2024/04/29(月) 19:53:54.99ID:D5HYHAbC0
アプリは32bitだがインストーラが16bitなのが結構あるらしい
2024/04/29(月) 20:59:16.06ID:JmumYEsm0
もしもそんなのがあったら、メチャクチャ話題になってると思うよ
699デフォルトの名無しさん (ワッチョイ dfad-b946)
垢版 |
2024/04/29(月) 22:45:20.14ID:c1TFMEcy0
知り合いにエミュレータ入れたりして凄く苦労してロータス123を動かして業務で使っている人が居る。
2024/04/30(火) 00:46:15.48ID:b4FWQSR70
使うのに手間はあるとはいえエミュレータが成熟してしまったので
かなり古いソフトウェアを動かしたいならそっちでやれと言えてしまうようになったとも言える。
Windows の互換性維持システムも結局はエミュレータをサブシステムとして
組み込んでるようなもんだしな。
2024/04/30(火) 10:07:58.44ID:XgZjmbIB0
>>697
ファーレントゥーガとかそのパターンだね
702デフォルトの名無しさん (ワッチョイ df79-V7Lt)
垢版 |
2024/04/30(火) 19:37:21.97ID:6siWZQQV0
なんで16bitの話になったのか理解不能
703デフォルトの名無しさん (ワッチョイ dfad-b946)
垢版 |
2024/05/01(水) 16:53:57.29ID:udfiR5VM0
>>686の辺りから?
2024/05/01(水) 19:51:41.60ID:nIC3qyB/0
プリプロセッサでモジュール作れるようになるとC++使わなくてもCで十分だな
もっと早めにマスターするべきだった
705デフォルトの名無しさん (ワッチョイ df79-V7Lt)
垢版 |
2024/05/02(木) 23:28:34.67ID:gN+cVuNV0
CでCOMやれって言われても困るし
逆にC++のがマシってのはその程度か
2024/05/03(金) 11:04:22.77ID:RJtMknPi0
cでもできるってのと、c++使ったほうが楽ってのでは全然意味違う
チームで混乱を招くという理由以外でのc++ディスりは、大抵理解不足によるアレルギーから来るヒスのことが多い
まあ、そういうヒス起こす人が多いからチームでは使用禁止とかになっちゃうわけだから、り繋がってはいるんだけど
2024/05/03(金) 11:08:15.33ID:9ebiuCIb0
チャンスあると自分語りを始めるのは、病気だぞ
2024/05/03(金) 11:51:54.49ID:RJtMknPi0
どういう理論だよ
普通の欲求だろ
2024/05/03(金) 12:00:23.89ID:KP5VxXzU0
普通じゃなくてガキの欲求
2024/05/03(金) 13:30:44.34ID:vhm3euJk0
リーナスはガキ
2024/05/03(金) 14:49:42.61ID:lW+ShOaq0
>>708
なわけ無いだろ
我慢ができないのはただのガキだぞ
2024/05/03(金) 16:16:10.22ID:RJtMknPi0
>>711
そうやって我慢できずに突っかかってきてるのもどうかと思うけどな…
2024/05/03(金) 16:35:03.08ID:8UCXCtC4M
linuxカーネル縛りと趣味以外でc言語使うってどういうプロジェクト?
実際仕事でそういう人いる?
組み込みでも今時c++使えるだろ
2024/05/04(土) 01:34:33.71ID:fPXjXaJw0
洗濯機や電子レンジなどは Cが最適じゃなかろうか
715デフォルトの名無しさん (ワッチョイ dfac-R43V)
垢版 |
2024/05/04(土) 01:40:48.74ID:nSEmjq+y0
メモリ構成が非常に小さいシステムの場合Cじゃない?
8bitのPICとか
2024/05/04(土) 17:05:29.45ID:VOfnZKej0
こういうの考えたんだけどどうだろう?
実用性無いだろうか

#include <stdio.h>

typedef void (*exception_handler)(void);

void register_exception_handler(exception_handler handler)
{
handler();
}

void exception_occurred()
{
printf("例外が発生しました。\n");
}

void may_throw_exception(int condition)
{
if (condition) {
register_exception_handler(exception_occurred);
}
}

int main()
{
may_throw_exception(1);

return 0;
}
2024/05/04(土) 17:59:35.95ID:pTi4k8MI0
ネタにしてもつまんない
2024/05/04(土) 18:34:27.18ID:XXil6xAz0
>>716
例外でもなくでもなくて草
Cで例外起こしたいならsetjmp/longjmpでやると決まってる
2024/05/04(土) 18:38:32.56ID:0cPYdG0t0
あれは例外なのか?
2024/05/04(土) 18:45:30.78ID:TbdOZmgm0
例外処理やりたいならsetjmpでも使えば
2024/05/05(日) 00:00:07.41ID:NN+M7fak0
>>716
「こういうの」とは何であるか説明が必要。
提示されたコードは関数 exception_occurred の呼び出しを回りくどくやっているだけで、
途中のメカニズムに意味がない。
(このコードでの使い方の範囲では。)

言葉で説明しづらいならこれが有用になるような使い方の例を示して欲しい。
2024/05/05(日) 00:01:55.61ID:5Yjpxxvd0
スタックの巻き戻しをどう実装するのか教えて欲しい
2024/05/05(日) 00:22:13.83ID:yEjzRI9b0
>>722
C の言語仕様の範囲内でやる方法は setjmp/longjmp のみ。
setjmp/longjmp を自分で書きたいってことなら
アセンブラ (またはインラインアセンブラや intrinsic 関数) を使って
スタックポインタ操作したりレジスタの待避・復旧などをやる必要があるが……。

モダンな処理系だと最適化だのなんだのの都合でスタックフレームを省略したりだとかもあるので
それらと協調しないとまともに動作しない。
たとえば gcc だと setjmp/longjmp の実体は
組み込み関数の __builtin_setjmp/__builtin_longjmp として提供されてる。
処理系自体の機能として持たないとちゃんと動作させられんのだ……。
2024/05/05(日) 00:39:05.41ID:eNHKeT630
>>713
九州大学の人工衛星・イザナミ/イザナギは、mruby だから、C 言語

ベンチャーで上場したらしい
2024/05/05(日) 03:04:42.71ID:vcr/Jmru0
Windows処理系の場合SEHがあるからsetjmp/longjmpをわざわざ使う事ないよ
というか外部ライブラリ等から例外を受ける場合SEH必須だよ
2024/05/13(月) 23:49:14.95ID:Wt06b2vO0
名古屋にスターキャットというケーブル会社があるんですが、この名前もしや
2024/05/14(火) 09:33:08.58ID:KpGXlSyl0
strcat()?
728デフォルトの名無しさん (ワッチョイ 312a-qYA6)
垢版 |
2024/05/14(火) 10:22:08.21ID:qHkm4M1L0
strfry(): スターふりゃー
2024/05/15(水) 11:58:16.33ID:MTx/QSx90
strをスターって読んでる奴は上達しないw
2024/05/15(水) 12:01:57.70ID:TrHxhldY0
strstr
これなんて読んでます?
2024/05/15(水) 13:36:27.56ID:H3ZUTeXN0
もとはstringなのは置いておいて
英語の発音だとストラの方が近い
まスチョラって感じだが
スターは無理だな
732 警備員[Lv.6][新初] (ワッチョイ 7b5f-7UPu)
垢版 |
2024/05/15(水) 21:51:01.03ID:QNLWEWL40
>>731
英語はラテン語系じゃないから、最後にaの発音は付けないよ?
733デフォルトの名無しさん (ワッチョイ bd2a-QxKS)
垢版 |
2024/05/15(水) 22:53:44.49ID:eM13T72T0
>>732
敢えて「らりるれろ」で表現すると、どれに近いの。
2024/05/15(水) 23:11:37.93ID:sr9WdMcN0
https://m.youtube.com/watch?v=oVDUHBj3Mb0
↑ここで聞くとストラレンだな
2024/05/16(木) 01:19:13.34ID:i/RRcUKc0
そもそも声に出して読む機会とかある?
2024/05/16(木) 03:34:18.28ID:p7AzABUa0
C言語を256倍使う本にコードを音読せよと書いてあっただろ
2024/05/16(木) 09:36:35.60ID:WDlUvNVq0
会社などで開発してれば「ここのストラレンが~」とか言うだろ
2024/05/16(木) 11:39:10.81ID:m+e5wcl90
ぼっちなんだよ、察してやれw
2024/05/16(木) 15:14:36.29ID:/s0PD0VX0
俺はstrをストロと読んでる
ストロレン
ボッチナノデモンダイナイ
2024/05/16(木) 17:02:21.44ID:cRCb9Dg/0
stdio.hはスタジオだよな?
741デフォルトの名無しさん (スフッ Sd2f-aIi2)
垢版 |
2024/05/16(木) 17:18:21.50ID:YR1de7Utd
🤣🤣🤣
2024/05/16(木) 17:24:24.63ID:VZS5byuk0
前は
今はすたっどあいおーって読んでる
743デフォルトの名無しさん (スフッ Sd2f-aIi2)
垢版 |
2024/05/16(木) 17:36:45.28ID:YR1de7Utd
ストゥーディオってよんでる
2024/05/16(木) 19:31:00.84ID:s6fDlAb80
「そのすたーちゃー(strchr)使うのやめろよ言うまでもなくすたーあーちゃー(strrchr)もな」って言うかも
今更C言語の話なんてしないけどストラ云々なんていっても伝わらんのは判ってる
2024/05/16(木) 20:34:50.38ID:2k3CZcmN0
普通に
エスティーアールレン
エスティーアールキャット
エスティアールエスティーアール
って言ってる

stdioは
エスティディーアイオー
2024/05/16(木) 21:06:22.53ID:WDlUvNVq0
ぶっちゃけローマ字でもバンドの名前でもstrをスターなんて読むこと無いだろ
2024/05/16(木) 21:38:17.53ID:cRCb9Dg/0
KAT-TUN かっつん
ONE OK ROCK おねぇオッケーロック

正しく読むのむずすぎだろ
2024/05/16(木) 22:54:42.14ID:WDlUvNVq0
わかったアールだからアーって発音するのか
そんなん聞いたことないな
どこの界隈で言ってるんだ

それにstrならエスティアーになるはずではw
2024/05/16(木) 23:16:18.01ID:V7nVgN2X0
strlen ストリング レン
strcat ストリング キャット
strstr …

stdio スタンダード アイオー

strcspn 使い方すら分からない
2024/05/16(木) 23:30:01.85ID:m+e5wcl90
>>748
つうかrはアーって発音すんだよ
まさかvをブイとか言わないよなw
vはヴィーだよ
2024/05/16(木) 23:36:51.27ID:m+e5wcl90
>>748
で、partyをパーリーと発音するように、tでアーと続くからラと発音してると思われる
ググるとフラップTと言うらしいな
2024/05/17(金) 07:01:02.01ID:FuakfFss0
>フラップT は、 t が前後を母音に挟まれており、かつ、t を含む音節にアクセントが置かれていない場合に起こります。

全然ちゃうやんw
母音に挟まれてないしアクセントはターにあるだろ
2024/05/17(金) 10:20:21.99ID:bHnKBI1y0
こんなに引っ張る話題でも無いと思うんだがな
2024/05/17(金) 11:40:38.90ID:m6sDsbO0M
この場合フラップTでなく連続子音ルール
2024/05/17(金) 12:32:56.71ID:iwOPo+Yod
ああ、それで、パリピーなのね
2024/05/17(金) 15:11:05.80ID:FuakfFss0
英語を自分ルール作って勝手に読んでる奴は暗黙の合意をわかる能力が低いということ
これはコンピュータ言語でも同じだ
自分で標準ライブラリ作り直すくらいの覚悟ならいいが中途半端に自分流突き通す奴は上達しない
2024/05/17(金) 18:00:34.84ID:7PzHxmpJ0
>>756
突然どうしたw
tはラと発音される事が多々ある
適当にググったからルールの呼称を間違えたようだ
それだけの事だろ
758デフォルトの名無しさん (ワッチョイ e3ad-739I)
垢版 |
2024/05/18(土) 06:19:27.02ID:s0SjtLL90
r の発音が難しい。
759デフォルトの名無しさん (ワッチョイ 452a-qYA6)
垢版 |
2024/05/18(土) 08:21:14.75ID:R6I0+Baq0
r の発音が難しいのであーる
と語尾を整えて欲しかった。
760デフォルトの名無しさん (オッペケ Sr6f-9tvc)
垢版 |
2024/05/18(土) 10:16:08.61ID:+7oj04xGr
Lit it GO❢ レリッゴ〜ゥゥ
2024/05/18(土) 10:25:11.31ID:ELr7G7Ab0
Let it ... DIE!

ttps://letitdie.jp/common/age-verification/index.html
762デフォルトの名無しさん (スフッ Sdba-4PJT)
垢版 |
2024/05/22(水) 17:33:39.89ID:I9OEeRHUd
live and let die
763デフォルトの名無しさん (ワッチョイ 4e2a-RP0s)
垢版 |
2024/05/22(水) 17:56:18.72ID:nvbXc7oi0
今夜は Beat It ビレー
今夜は Eat It イレー
2024/05/22(水) 19:05:55.70ID:vvg7DOyN0
Get Up! ゲロッパ!
765デフォルトの名無しさん (スフッ Sdba-YsZb)
垢版 |
2024/05/23(木) 17:32:53.32ID:JZ6dG1qId
静的記憶域期間をもつ、文字列リテラルの正体をおしえてください。
2024/05/23(木) 17:55:28.11ID:hB8qN6AJ0
三つ子の魂
767デフォルトの名無しさん (スフッ Sdba-4PJT)
垢版 |
2024/05/23(木) 18:06:03.63ID:JZ6dG1qId
文字列リテラルは、アドレス(ポインタ)でもあるんですよね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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