[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
726: デフォルトの名無しさん (ワッチョイ 13ad-avMV) [] 2025/03/20(木) 04:57:02.69 ID:07u24rkx0 まあしかしこの頃のコンパイラは警告やエラーを沢山出してくれて分り易いよ。 昔のはチェックが緩くて出なかったからな。 その状態から gcc で printf() のフォーマットと引数のチェックが出来ると知った時は衝撃を受けた。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/726
727: デフォルトの名無しさん (ワッチョイ 418c-jD59) [sage] 2025/03/20(木) 17:01:49.87 ID:iinwNT6F0 >>726 それな、オプションさえちゃんと付ければ昔でもできてたよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/727
728: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2170-a7BF) [sage] 2025/03/20(木) 17:31:14.06 ID:PqZkwPwR0 GCC では遅くても 2.95.3 には attribute で文字列が書式であることを指定できて型チェックする機能はあった模様。(2001年頃) https://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_4.html#SEC84 ただな、このスレにいるようなおじさんの言う「昔」は 1980 年頃の話だったりするんよ。 MS-DOS 用とか CP/M 用とかのコンパイラの話なんよ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/728
729: デフォルトの名無しさん (ワッチョイ 71ff-yHWN) [sage] 2025/03/20(木) 17:39:11.70 ID:Enps6Akh0 その年代の人はおじさんじゃなくておじいさんでは http://mevius.5ch.net/test/read.cgi/tech/1721137434/729
730: デフォルトの名無しさん (ワッチョイ 418c-jD59) [sage] 2025/03/20(木) 17:45:05.08 ID:iinwNT6F0 >>728 スマソ、俺はちょっと若すぎたわ だいぶ昔からできてた記憶があったがそれよりさらに昔の話とは恐れ入った先輩 http://mevius.5ch.net/test/read.cgi/tech/1721137434/730
731: デフォルトの名無しさん (ワッチョイ c95f-H5Hv) [sage] 2025/03/20(木) 18:23:15.20 ID:0dSk8Oyx0 メインフレームにダム端末繋げてた時代じゃよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/731
732: デフォルトの名無しさん (スフッ Sd33-4EpX) [sage] 2025/03/20(木) 23:54:14.30 ID:t3XlSG3jd gcc7.1から突然エラーメッセージが親切になったのはあるな ちょうどclang+llvmが話題になった時期でそれに対抗したらしい http://mevius.5ch.net/test/read.cgi/tech/1721137434/732
733: デフォルトの名無しさん (ワッチョイ 13ad-avMV) [] 2025/03/21(金) 07:44:18.11 ID:6cMMiEqo0 >>727 それはどのぐらい昔かによる。 80年代後半にはまだなかったと思う。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/733
734: デフォルトの名無しさん (ワッチョイ 13ad-avMV) [] 2025/03/21(金) 07:45:09.98 ID:6cMMiEqo0 >>728 そうそう。80年代。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/734
735: デフォルトの名無しさん (ワッチョイ 9bec-91cd) [sage] 2025/03/21(金) 08:19:02.26 ID:kfFumR870 真理子版が便利すぎた。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/735
736: デフォルトの名無しさん (ワッチョイ 992a-15T+) [sage] 2025/03/22(土) 13:52:41.80 ID:A90b+kK90 他人にも使わせるツールに環境変数「真里子」はキモすぎてビビった http://mevius.5ch.net/test/read.cgi/tech/1721137434/736
737: デフォルトの名無しさん (アウアウエー Sa23-D2PX) [] 2025/03/22(土) 14:25:25.39 ID:U6/Lg1xxa >>728 scanf, sscanf で float, double に %f, %lf のところを %f, %f にしてバグるのがありがち http://mevius.5ch.net/test/read.cgi/tech/1721137434/737
738: 627 (ワッチョイ 5377-avMV) [] 2025/03/22(土) 15:31:32.91 ID:7ZrFn0ve0 scanfなんて使ったことねーや ありがちってほど使ってるんか http://mevius.5ch.net/test/read.cgi/tech/1721137434/738
739: デフォルトの名無しさん (ワッチョイ eba1-hjYJ) [sage] 2025/03/22(土) 15:40:39.16 ID:8J5Eq6PC0 scanfに道に落ちているを食べさせてはいけません http://mevius.5ch.net/test/read.cgi/tech/1721137434/739
740: デフォルトの名無しさん (ワッチョイ 492a-jhJX) [] 2025/03/28(金) 08:23:03.00 ID:+OZuQWBg0 この警告、環境によっては出ないの? $ cc ld.c -Wall ld.c: 関数 ‘main’ 内: ld.c:6:19: 警告: 書式 ‘%d’ は引数の型が ‘int’ であると予期されますが、第 2 引数の型は ‘off_t’ {aka ‘long int’} です [-Wformat=] 6 | return printf("%d", offset); | ~^ ~~~~~~ | | | | int off_t {aka long int} | %ld $ cat -n ld.c 1 #include <stdio.h> 2 #include <sys/param.h> 3 4 int main() { 5 off_t offset = 1; 6 return printf("%d", offset); 7 } 8 http://mevius.5ch.net/test/read.cgi/tech/1721137434/740
741: デフォルトの名無しさん (ブーイモ MM26-xG3a) [sage] 2025/03/28(金) 08:29:47.68 ID:v2Oxq7uoM おれの作ったCコンパイラはそんな警告出さないけど何か文句ある? http://mevius.5ch.net/test/read.cgi/tech/1721137434/741
742: 740 (ワッチョイ 492a-jhJX) [] 2025/03/28(金) 09:29:48.60 ID:+OZuQWBg0 >>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. http://mevius.5ch.net/test/read.cgi/tech/1721137434/742
743: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU) [sage] 2025/03/28(金) 11:25:13.48 ID:gM96YdDw0 >>740 出さないコンパイラはあるし、その場合に警告を出すコンパイラであっても printf 類を特別扱いしてなんとかしてるので、可変長引数一般では型が合わないときに検出されない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/743
744: 740 (ワッチョイ 492a-aKLX) [] 2025/03/28(金) 13:15:49.58 ID:+OZuQWBg0 なるぽろ。%ld に変更せず、放っておくか。ありがとう。 ちなみに、逆に、%ld だと警告する場合も有り得るのだろうか。例えば off_t が非 long の機種があるとか。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/744
745: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU) [sage] 2025/03/28(金) 13:32:37.75 ID:gM96YdDw0 x86-64 なら System V ABI ではどうせ 64 ビットレジスタで受け渡されるからそこんところでは問題にならないのだが、最適化したときにどうなるかまるで予想がつかない。 放置してよいとは言えない。 いったん intmax_t にキャストするのが正当な方法だと考えられている。 https://www.jpcert.or.jp/sc-rules/c-int15-c.html http://mevius.5ch.net/test/read.cgi/tech/1721137434/745
746: デフォルトの名無しさん (ワッチョイ 6eef-29WZ) [] 2025/03/28(金) 15:39:13.17 ID:Gm0qUC0n0 struct X* x;で自動変数を定義した場合 スタック上のどこかにstruct Xの領域が確保されたりしますか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/746
747: デフォルトの名無しさん (ブーイモ MM26-xG3a) [sage] 2025/03/28(金) 15:47:02.39 ID:v2Oxq7uoM されない http://mevius.5ch.net/test/read.cgi/tech/1721137434/747
748: 740 (ワッチョイ 492a-mzfN) [sage] 2025/03/28(金) 17:27:47.76 ID:+OZuQWBg0 >>745 > printf("%ju", (uintmax_t) x); なるぽろ。ありがとう。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/748
749: デフォルトの名無しさん (ササクッテロラ Spf1-7PGi) [sage] 2025/03/28(金) 19:09:11.37 ID:Yj8GIx0sp なんだよjって、何の略だ? http://mevius.5ch.net/test/read.cgi/tech/1721137434/749
750: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU) [sage] 2025/03/28(金) 22:16:42.65 ID:gM96YdDw0 >>749 なんらかの単語の略 (頭文字) というわけではないらしいよ。 > j is sort of like "i" for integer https://www.open-std.org/jtc1/sc22/wg14/www/docs/n833.htm http://mevius.5ch.net/test/read.cgi/tech/1721137434/750
751: 警備員[Lv.2][新芽] (ワッチョイ 6dcd-maST) [sage] 2025/03/28(金) 23:06:36.11 ID:UFqBPtr80 μ→uみたいなものか 大文字の I はもう使われてふのかな? http://mevius.5ch.net/test/read.cgi/tech/1721137434/751
752: デフォルトの名無しさん (アウアウウー Saa5-WcQO) [] 2025/03/29(土) 16:07:35.02 ID:M3jsTRd4a long long や unsigned long long の出力に %lld や %llu って昔は使えてた気がするが 最近はだめなんかな %I64 とか %U64 みたいなのになってるん http://mevius.5ch.net/test/read.cgi/tech/1721137434/752
753: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-p0tU) [sage] 2025/03/29(土) 16:54:36.19 ID:HRez4USp0 >>752 I64 とかはマイクロソフトの拡張。 新しい方法じゃなくてむしろ古い方法が互換性のために残されているだけ。 今となってはあえて使う理由はない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/753
754: デフォルトの名無しさん (ワッチョイ 2e2a-aKLX) [] 2025/03/29(土) 17:30:28.12 ID:bd7PveSA0 >>752 > %I64 とか %U64 移植が大変そうね。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/754
755: デフォルトの名無しさん (ワッチョイ a92a-K+vz) [sage] 2025/04/08(火) 18:05:53.82 ID:f9O97Hv70 sudo で実行すると execl が動作しないように見える。なぜ? $ cat -n e.c 1 #include <stdio.h> 2 #include <unistd.h> 3 4 int main() { 5 pid_t pid; 6 if ((pid = fork()) > 0) return 0; 7 else if (pid < 0) return 1; 8 execl("/bin/bash", "/bin/bash", "-c", "echo $$ $PPID >> /tmp/log", NULL); 9 _exit(2); 10 } $ gcc -g e.c $ ./a.out $ cat /tmp/log 10593 1566 $ sudo ./a.out $ cat /tmp/log 10593 1566 $ http://mevius.5ch.net/test/read.cgi/tech/1721137434/755
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 247 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s