[過去ログ] C言語なら俺に聞け 163 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
725: はちみつ餃子◆8X2XSCHEME (ワッチョイ 215e-a7BF) 03/19(水)20:44 ID:SWZJHd7L0(1) AAS
C が未定義をエラーとして補足せずに黙って変になることがあるのは入門書などをまともに読まずにいろいろ弄って学ぶタイプの人には向いてないな。
ちゃんとした入門書をちゃんと読むならそんなに難しいわけではない。
しかし難しくないことでもしょうもないミスをするのが人というものだという現実もあって、特に規模が大きくなると C はしんどい。
難易度とかいうのとは別の話として、理解していても間違う。
726(1): (ワッチョイ 13ad-avMV) 03/20(木)04:57 ID:07u24rkx0(1) AAS
まあしかしこの頃のコンパイラは警告やエラーを沢山出してくれて分り易いよ。
昔のはチェックが緩くて出なかったからな。
その状態から gcc で printf() のフォーマットと引数のチェックが出来ると知った時は衝撃を受けた。
727(1): (ワッチョイ 418c-jD59) 03/20(木)17:01 ID:iinwNT6F0(1/2) AAS
>>726
それな、オプションさえちゃんと付ければ昔でもできてたよ
728(3): はちみつ餃子◆8X2XSCHEME (ワッチョイ 2170-a7BF) 03/20(木)17:31 ID:PqZkwPwR0(1) AAS
GCC では遅くても 2.95.3 には attribute で文字列が書式であることを指定できて型チェックする機能はあった模様。(2001年頃)
外部リンク[html]:gcc.gnu.org
ただな、このスレにいるようなおじさんの言う「昔」は 1980 年頃の話だったりするんよ。
MS-DOS 用とか CP/M 用とかのコンパイラの話なんよ。
729: (ワッチョイ 71ff-yHWN) 03/20(木)17:39 ID:Enps6Akh0(1) AAS
その年代の人はおじさんじゃなくておじいさんでは
730: (ワッチョイ 418c-jD59) 03/20(木)17:45 ID:iinwNT6F0(2/2) AAS
>>728
スマソ、俺はちょっと若すぎたわ
だいぶ昔からできてた記憶があったがそれよりさらに昔の話とは恐れ入った先輩
731: (ワッチョイ c95f-H5Hv) 03/20(木)18:23 ID:0dSk8Oyx0(1) AAS
メインフレームにダム端末繋げてた時代じゃよ
732: (スフッ Sd33-4EpX) 03/20(木)23:54 ID:t3XlSG3jd(1) AAS
gcc7.1から突然エラーメッセージが親切になったのはあるな
ちょうどclang+llvmが話題になった時期でそれに対抗したらしい
733: (ワッチョイ 13ad-avMV) 03/21(金)07:44 ID:6cMMiEqo0(1/2) AAS
>>727
それはどのぐらい昔かによる。
80年代後半にはまだなかったと思う。
734: (ワッチョイ 13ad-avMV) 03/21(金)07:45 ID:6cMMiEqo0(2/2) AAS
>>728
そうそう。80年代。
735: (ワッチョイ 9bec-91cd) 03/21(金)08:19 ID:kfFumR870(1) AAS
真理子版が便利すぎた。
736: (ワッチョイ 992a-15T+) 03/22(土)13:52 ID:A90b+kK90(1) AAS
他人にも使わせるツールに環境変数「真里子」はキモすぎてビビった
737: (アウアウエー Sa23-D2PX) 03/22(土)14:25 ID:U6/Lg1xxa(1) AAS
>>728
scanf, sscanf で float, double に %f, %lf のところを %f, %f にしてバグるのがありがち
738: 627 (ワッチョイ 5377-avMV) 03/22(土)15:31 ID:7ZrFn0ve0(1) AAS
scanfなんて使ったことねーや
ありがちってほど使ってるんか
739: (ワッチョイ eba1-hjYJ) 03/22(土)15:40 ID:8J5Eq6PC0(1) AAS
scanfに道に落ちているを食べさせてはいけません
740(1): (ワッチョイ 492a-jhJX) 03/28(金)08:23 ID:+OZuQWBg0(1/4) AA×

741(1): (ブーイモ MM26-xG3a) 03/28(金)08:29 ID:v2Oxq7uoM(1/2) AAS
おれの作ったCコンパイラはそんな警告出さないけど何か文句ある?
742: 740 (ワッチョイ 492a-jhJX) 03/28(金)09:29 ID:+OZuQWBg0(2/4) AAS
>>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.
743: はちみつ餃子◆8X2XSCHEME (ワッチョイ ed32-p0tU) 03/28(金)11:25 ID:gM96YdDw0(1/3) AAS
>>740
出さないコンパイラはあるし、その場合に警告を出すコンパイラであっても printf 類を特別扱いしてなんとかしてるので、可変長引数一般では型が合わないときに検出されない。
744: 740 (ワッチョイ 492a-aKLX) 03/28(金)13:15 ID:+OZuQWBg0(3/4) AAS
なるぽろ。%ld に変更せず、放っておくか。ありがとう。
ちなみに、逆に、%ld だと警告する場合も有り得るのだろうか。例えば off_t が非 long の機種があるとか。
745(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ed32-p0tU) 03/28(金)13:32 ID:gM96YdDw0(2/3) AAS
x86-64 なら System V ABI ではどうせ 64 ビットレジスタで受け渡されるからそこんところでは問題にならないのだが、最適化したときにどうなるかまるで予想がつかない。 放置してよいとは言えない。
いったん intmax_t にキャストするのが正当な方法だと考えられている。
外部リンク[html]:www.jpcert.or.jp
746: (ワッチョイ 6eef-29WZ) 03/28(金)15:39 ID:Gm0qUC0n0(1) AAS
struct X* x;で自動変数を定義した場合
スタック上のどこかにstruct Xの領域が確保されたりしますか?
747: (ブーイモ MM26-xG3a) 03/28(金)15:47 ID:v2Oxq7uoM(2/2) AAS
されない
748: 740 (ワッチョイ 492a-mzfN) 03/28(金)17:27 ID:+OZuQWBg0(4/4) AAS
>>745
> printf("%ju", (uintmax_t) x);
なるぽろ。ありがとう。
749(1): (ササクッテロラ Spf1-7PGi) 03/28(金)19:09 ID:Yj8GIx0sp(1) AAS
なんだよjって、何の略だ?
750: はちみつ餃子◆8X2XSCHEME (ワッチョイ ed32-p0tU) 03/28(金)22:16 ID:gM96YdDw0(3/3) AAS
>>749
なんらかの単語の略 (頭文字) というわけではないらしいよ。
> j is sort of like "i" for integer
外部リンク[htm]:www.open-std.org
751: 警備員[Lv.2][新芽] (ワッチョイ 6dcd-maST) 03/28(金)23:06 ID:UFqBPtr80(1) AAS
μ→uみたいなものか
大文字の I はもう使われてふのかな?
752(2): (アウアウウー Saa5-WcQO) 03/29(土)16:07 ID:M3jsTRd4a(1) AAS
long long や unsigned long long の出力に %lld や %llu って昔は使えてた気がするが
最近はだめなんかな
%I64 とか %U64 みたいなのになってるん
753: はちみつ餃子◆8X2XSCHEME (ワッチョイ ed32-p0tU) 03/29(土)16:54 ID:HRez4USp0(1) AAS
>>752
I64 とかはマイクロソフトの拡張。
新しい方法じゃなくてむしろ古い方法が互換性のために残されているだけ。
今となってはあえて使う理由はない。
754: (ワッチョイ 2e2a-aKLX) 03/29(土)17:30 ID:bd7PveSA0(1) AAS
>>752
> %I64 とか %U64
移植が大変そうね。
上下前次1-新書関写板覧索設栞歴
あと 248 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.027s