C言語なら俺に聞け 158at TECH
C言語なら俺に聞け 158 - 暇つぶし2ch726:デフォルトの名無しさん
22/06/14 11:13:15.99 rBU/2bdp0.net
661の立場だと
 void func(int x) { }
 ・・・・・
 func();
は、記述のほうで x をリファレンスしてないからセーフで未定義には該当しないと読めるが
そいう主張なのかな

727:デフォルトの名無しさん
22/06/14 11:51:03.61 2oEiwFQbr.net
引っ込みつかなくなると大変だね

728:デフォルトの名無しさん
22/06/14 12:19:58.97 zr4Ezotf0.net
単に使われない変数があるってだけだと思うが

729:デフォルトの名無しさん
22/06/14 12:58:48.08 WigeF4Tr0.net
>>718
>>717ww

730:デフォルトの名無しさん
22/06/14 13:36:14.16 rBU/2bdp0.net
実装の話
関数側でスタックに詰まれた引数をクリーンアップする呼び出し規約(pascalcall や stdcall) だと
明後日に飛んでいくのか

731:デフォルトの名無しさん
22/06/14 19:11:20.40 DieH08Hx0.net
引き数の値で関数内の処理を分けるか普通に関数分ければいいやん

732:デフォルトの名無しさん
22/06/14 21:11:51.49 VPcVb+UNM.net
普通の人ならそうするが、
普通で無い方法が無いかを
いろいろ議論している
暇つぶしとも言う

733:デフォルトの名無しさん
22/06/14 21:17:41.30 XpDhKBGs0.net
特定されない限りあらゆるケースを想定するからな

734:デフォルトの名無しさん
22/06/14 23:50:32.80 dnqAP5Hg0.net
>>718
DLLの呼び出しみたいに呼び出し先の実装をコンパイラが知らない場合
例えば引数をスタックに積む呼び出し規約だと
↓正常な動作
1)戻り先のアドレスをスタックに積む
2)引数をスタックに積む
3)DLL側のコード実行時にpopしてスタックから引数ゲット
4)いろいろ処理してpopして戻り先アドレスをゲットしてりたーん
これが↓異常な動作
1)戻り先のアドレスをスタックに積む
2)なんもない
3)DLL側のコード実行時にpopしてスタックから引数ゲット
4)いろいろ処理してpopして戻り先アドレスをゲットしてりたーん
5)わし、迷子
ってなるんちゃうん?
引数がレジスタ渡しなら、ただ変な数値受け取るだけで済むけど、今ここでの話じゃ限定してないようだし

735:デフォルトの名無しさん
22/06/15 00:28:34.16 kIvvyTdz0.net
呼び出しって引数をスタックに積んでから、呼び出すんじゃなかったかな

736:デフォルトの名無しさん
22/06/15 00:38:49.11 3+VQJWvy0.net
>>725
そうだよ
だから func(int);な関数をfunc(void); で呼び出したらスタックにずれが生じる可能性がある

737:デフォルトの名無しさん
22/06/15 00:43:20.78 kIvvyTdz0.net
引数をスタックに積んでから、戻りアドレスを積んでCallするなら、
func関数はスタック先頭位置にあるアドレスに戻るだけではないかな
積まれている引数はその下だからズレないと思う

738:デフォルトの名無しさん
22/06/15 00:57:26.32 3+VQJWvy0.net
>>727
>引数をスタックに積んでから、戻りアドレスを積んでCallするなら、
逆だぞ
戻りアドレスをスタックに積んでから引数をスタックに積む、その状態でfuncをコールする
そうしないと、次のpopでは戻りアドレスを受け取ることになり、引数を受け取れない
コールされ


739:たfuncはpopし引数を受け取って処理(この間にスタックへのpush/popがあったりして)、最後にpopして戻りアドレスを受け取って呼び出し元に帰る



740:デフォルトの名無しさん
22/06/15 01:08:25.20 kIvvyTdz0.net
戻りアドレスをスタックに積むのは、機械語のCALL命令が行うんでしょう?

741:デフォルトの名無しさん
22/06/15 01:16:07.05 kIvvyTdz0.net
VCでアセンブラソース出力させてみました
int main()
{
 call(1);
 call();
 return 0;
}
int call()
{
 return 0;
}

742:デフォルトの名無しさん
22/06/15 01:17:50.09 kIvvyTdz0.net
_main PROC
; Line 2
 push ebp
 mov ebp, esp
; Line 3
 push 1
 call _call
 add esp, 4
; Line 4
 call _call
; Line 5
 xor eax, eax
; Line 6
 pop ebp
 ret 0
_main ENDP

743:デフォルトの名無しさん
22/06/15 01:18:18.33 kIvvyTdz0.net
_call PROC
; Line 8
 push ebp
 mov ebp, esp
; Line 9
 xor eax, eax
; Line 10
 pop ebp
 ret 0
_call ENDP

744:デフォルトの名無しさん
22/06/15 01:22:13.35 3+VQJWvy0.net
そうでした
うんこは消えます

745:デフォルトの名無しさん
22/06/15 05:01:22.73 oeHjaPLHa.net
フレームポインタってのもあって
まあなんでもいいんです

746:デフォルトの名無しさん
22/06/15 15:38:51.27 IEWflW3Ga.net
>>728
馬鹿発見

747:デフォルトの名無しさん
22/06/15 18:22:38.94 mSaBC5As0.net
>729
全てのCPUにCALL相当の命令があるとは限らないってことを頭の片隅に。

748:デフォルトの名無しさん
22/06/15 19:14:29.02 kIvvyTdz0.net
CALL命令のないCPUにCってどういう風に実装するのかな
キッと神様のような人だろうと思う

749:デフォルトの名無しさん
22/06/15 19:34:49.70 vqdnmmaIa.net
最近call見ないよね
命令はあるけど

750:デフォルトの名無しさん
22/06/15 19:53:29.20 XKwaNEU7


751:0.net



752:デフォルトの名無しさん
22/06/15 19:55:51.69 XKwaNEU70.net
>>737
汎用機みたいにスタックが無いマシンだとソフトでスタック作るとかする

753:デフォルトの名無しさん
22/06/15 20:05:59.02 kIvvyTdz0.net
呼出も戻りも、ジャンプ命令で実装するんかい?
「食らえ、GOTO攻撃!」

754:デフォルトの名無しさん
22/06/15 20:06:30.10 gppE9X5h0.net
>>737
厳密じゃないけど、
push pc
jmp xxxx
 :
pop pc
みたいな。push pcする時にjmpのアドレスの次を

755:デフォルトの名無しさん
22/06/15 20:07:41.69 gppE9X5h0.net
途中で書き込んてしまった。
>>737
厳密じゃないけど、
push pc
jmp xxxx
 :
pop pc
みたいな。push pcする時にjmpの次のアドレスをpushする必要があるけど。

756:デフォルトの名無しさん
22/06/15 20:29:16.05 mSaBC5As0.net
>739
2000年あたりのスパコンのデバッグやってたけどスタックポインタ自体無かったよ。
汎用レジスタの一つをスタックポインタの様に使ってた。
スパコンのPEはCPUじゃ無いっていうならそれまでだけど。
OSがCで書かれてたよ。

757:はちみつ餃子
22/06/15 20:38:36.75 VY0KZJ3n0.net
専用のレジスタを用意するかわりにアドレシングモードを充実させてるタイプの CPU もあるとは聞いたことは有る。
複数のスタックを用途別に使ったりする運用も出来るので便利っぽいよ。

758:デフォルトの名無しさん
22/06/15 20:42:40.26 Z7kfo4VR0.net
リンクレジスタを使うアーキテクチャは
呼び出しも戻りもジャンブだよ

759:デフォルトの名無しさん
22/06/15 21:27:21.82 XKwaNEU70.net
>>744
だから>>740に書いたように汎用機みたいにハードウェアスタックが無いプロセッサーは普通にあるよ
でもBASみたいにサブルーチンを呼び出す命令はある(戻りアドレスをレジスタに格納してジャンプする)
スパコンの命令セットは見たことないけど似たような命令はあると思う

760:デフォルトの名無しさん
22/06/15 21:32:09.09 mSaBC5As0.net
JMPで呼び出した関数に飛んで、
JMPで呼び出し元に戻って行ってたよ。
RET、それ相当の命令が無かった(使われてなかった?)。

761:デフォルトの名無しさん
22/06/15 21:47:48.01 vqdnmmaIa.net
ぴゅう太のCPUとか全然レジスタなかった

762:デフォルトの名無しさん
22/06/15 21:51:15.67 XKwaNEU70.net
>>748
どこのスパコン?

763:デフォルトの名無しさん
22/06/15 21:56:54.74 Ltc382Vw0.net
Z8スーパーコンピュータ

764:デフォルトの名無しさん
22/06/15 21:58:58.10 XKwaNEU70.net
>>749
あれはレジスタはメモリー上に置くって言う設計思想だから

765:デフォルトの名無しさん (ワッチョイ 7f36-GGE9)
22/06/15 22:55:33 mSaBC5As0.net
>750
富士通。
実機は見たこと無い。
なんかアメリカに設置されてて、日本の端末(FMVにFreeBSDかなんか入れてた)からtelnetで入って作業してた。
入社1年目だったんでテスト作業員+フリーズした場所の特定と原因予想してた。

766:デフォルトの名無しさん
22/06/16 07:08:44.59 ilsRfae90.net
STM 14,12,12(13)
LR 12,15
GETMAIN RU,LV=72
ST 13,4(,1)
ST 1,8(,13)
LR 13,1

767:デフォルトの名無しさん
22/06/16 07:48:03.24 acnLqVz40.net
>>753
2000年辺りならベクトルタイプのVPP シリーズの方かな
スカラパラレルはUltraSPARCだし

768:デフォルトの名無しさん
22/06/16 14:04:28.10 6d6damS40.net
① struct _Hoge;
② typedef struct _Hoge Hoge;
③ struct _Hoge { int a; };
④ typedef struct _Hoge { int a; } Hoge;
↑の①~④はどれが「定義」でどれが「宣言」かよくわからんです
typedef の def は define(定義)の def ですが
変数作って値を定義していないので全部宣言ですかね?

769:デフォルトの名無しさん
22/06/16 14:15:11.58 ilsRfae90.net
原則、重複が許されるのが宣言、許されないのが定義
ただし仮定義のような例外も一部ある

770:デフォルトの名無しさん
22/06/16 14:18:30.74 6d6damS40.net
そうすると①は宣言ですね

771:デフォルトの名無しさん
22/06/16 14:37:35.99 ilsRfae90.net
うむ

772:デフォルトの名無しさん (アウアウウー Sa67-iSSN)
22/06/16 19:53:21 hEUIHdUOa.net
コンパイラが単語を覚えるのが宣言
メモリに実態が産まれるのが定義

773:デフォルトの名無しさん (ブーイモ MM7f-a+sK)
22/06/16 20:19:36 2MvWGhryM.net
③書いたところでメモリに実体生まれんだろ

774:デフォルトの名無しさん
22/06/16 22:26:58.67 6d6damS40.net
③を2回書くとエラーになりますね
この辺は沼でしょうか?
厳密に分けても何かに役立つというものでもないし・・・

775:デフォルトの名無しさん
22/06/16 23:14:06.95 y5qePP6X0.net
そういう風に決めたなら仕方がないが
意味的には、定義と宣言って逆な印象を受けます
数学でいうと、
点や直線の定義では実際の描画はまだですが
点や直線の宣言っていうと、その場に描画すると言うイメージ

776:はちみつ餃子
22/06/16 23:16:16.53 yR1zGyRS0.net
宣言と定義の意味については C99 だと 6.7 に記述がある
> 宣言は、幾つかの識別子の解釈及び属性を指定する。
> 識別子の定義 (definition) とは、宣言のうち次のものをいう。
> ・ オブジェクトに対しては、そのオブジェクトの記憶域を確保する宣言
> ・ 関数に対しては、関数本体を含む宣言
> ・ 列挙定数又は型定義名に対しては、その識別子の (唯一の) 宣言
逆に言えば定義は常に宣言でもある。

777:デフォルトの名無しさん
22/06/17 05:27:18.60 zopwF6/i0.net
実体が作られるといっても
プログラムイメージにスペースが確保されるとは限らない
静的記憶域期間を持つものはプログラムイメージに作られるが
自動記憶域期間を持つものは実行中に割付と解放が行われるし
構造体のメンバ宣言並びはコンパイラのメモリに作られる
これらのいずれも「定義」となる

778:デフォルトの名無しさん
22/06/17 07:51:59.32 bL392TY50.net
>>765
> 構造体のメンバ宣言並びはコンパイラのメモリに作られる
それは
> コンパイラが単語を覚えるのが宣言
の方じゃね?

779:デフォルトの名無しさん
22/06/17 08:44:28.03 rAke7YJm0.net
なんとなくのイメージ
・宣言
「xxxxって名前の変数(関数)がどっかにあるらしいよ。詳しいことは知らん。」
・定義
「xxxxの詳細はココに書かれたxxxxxである!これは決定事項である!!」

780:デフォルトの名無しさん
22/06/17 13:54:11.29 zopwF6/i0.net
>>766
struct _Hoge;
struct _Hoge; // OK
これは _Hoge という識別子がタグ名という定型データとして作られ、
その後、定型データの中の属性フラグが検査されて一致が確認される
struct _Hoge;
union _Hoge; // NG
これは定型データの中の属性フラグが検査され不一致が検出される
struct _Hoge;
struct _Hoge { int a; }; // OK
これは定型データの中のポインタがまずNULLで作られ、
次に、そのポインタでメンバ宣言列という不定型データを指す
struct _Hoge { int a; };
struct _Hoge { int a; }; // NG
これは既にNULLでなくなったポインタの貼りかえで拒否される
宣言の重複は矛盾の検出のみを行い
定義の重複は不定型データの再作成で拒否される
{ } は無結合

781:デフォルトの名無しさん
22/06/17 16:09:04.52 G79h5Zera.net
>>763
誤訳

782:デフォルトの名無しさん
22/06/17 16:13:44.68 G79h5Zera.net
struct _Hoge { int a; };
struct _Hoge { int a; }; // NG
この場合でもコンパイル単位が別ファイルだと(ほぼ)問題無い訳で
一致していなければ一致していないなりの結果が産まれる

783:デフォルトの名無しさん
22/06/17 16:33:58.20 zopwF6/i0.net
>>770
(ほぼ)は不要
問題ないというか完全に同じ内容になっていない場合は未定義の動作

784:デフォルトの名無しさん
22/06/17 19:28:59.11 bL392TY50.net
>>768
なにを言いたいのかさっぱりわからんw

785:デフォルトの名無しさん
22/06/18 20:10:05.11 cOcEcivya.net
ヘッダ include したことないとか
ヘッダに実装描くとか
分割コンパイルしたことないとか
そういうアホのにおいがプンプン丸

786:デフォルトの名無しさん
22/06/18 23:11:41.82 eg6b2Ems0.net
どこにそんな話出てた…?

787:デフォルトの名無しさん
22/06/20 15:11:40.00 BalXxnr90.net
定義と宣言の区別に関して
同一翻訳単位の中で 重複が許されるのが宣言 の実例の話やろ

788:デフォルトの名無しさん
22/06/20 20:05:57.84 3bt1t/j50.net
聞きたいのは内容じゃなくてなぜそんな話をいきなり始めたのか?なんだけどw

789:デフォルトの名無しさん
22/06/20 20:11:30.62 8GsqMDfwr.net
ヘッダに実装書いたっていうレスもヘッダをincludeしたことないっていうレスも見当たらないけど…

790:デフォルトの名無しさん
22/06/20 20:27:07.42 aPzFu0cfd.net
別ソースから同じヘッダをincludeしていてもコンパイル時には必ず別ファイルとなるわけで(ほぼ)じゃ困る

791:デフォルトの名無しさん (ワッチョイ ffad-DcGD)
22/06/25 17:14:53 g21tYZQo0.net
if ( a == 0 )
{ port &= 0b11011111 ;
}
else
{ port |= 0b00100000 ;
}

これ条件文使わずに書けるよね?

792:デフォルトの名無しさん
22/06/25 17:41:40.76 ZgY7VkDz0.net
>>779
三項演算子は条件文に含みますか?

793:デフォルトの名無しさん
22/06/25 17:45:19.17 zMWMLrlCM.net
書けるかどうかより、分かりやすいかの方が大事

794:デフォルトの名無しさん
22/06/25 17:45:51.43 9jpr7vFN0.net
port = port & ~((a == 0) * ~0b11011111) | (a != 0) * 0b00100000
頭悪いんでこれ以上無理。確実にレビューで落ちる

795:デフォルトの名無しさん
22/06/25 17:56:58.31 9jpr7vFN0.net
何だこれでいいのか
port = port & 0b11011111 | (a != 0) << 5

796:デフォルトの名無しさん
22/06/25 18:15:30.63 g21tYZQo0.net
おまいらは何で素直にかけないんだ?(´・ω・`)?

797:デフォルトの名無しさん
22/06/25 18:26:40.73 XIyeaAEpr.net
>>779
条件分を使わない理由はないよね?

798:デフォルトの名無しさん
22/06/25 18:26:54.17 9jpr7vFN0.net
まさか質問者に駄目だしされるとは思わなんだ

799:デフォルトの名無しさん
22/06/25 18:28:36.26 gQjoPRQF0.net
条件によって8ビット目以上も変える訳ではないのならば…かな
&= 0b11011111 | !!a << 5や&= ~0b00100000 | !!a << 5とかも論理否定は楽な方で
後者は若干レジスタ雑に出来るが…しかし最適化するとif文も分岐排除されてほぼ変わらん

800:デフォルトの名無しさん
22/06/25 19:15:33.07 ca1tbhpBH.net
条件文使わずに書いても何もメリットない

801:デフォルトの名無しさん
22/06/25 19:35:30.93 IvS/BJ7o0.net
やるならアセンブラレベルで・・・

802:デフォルトの名無しさん
22/06/25 22:45:43.97 UWoTCBGr0.net
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
0b 使えないw

803:デフォルトの名無しさん
22/06/25 23:52:02.49 PITDVbGU0.net
そりゃそうだろ
C言語としてはGCCの拡張だし
C++14でコンパイルしたらいけるんじゃね?

804:デフォルトの名無しさん (ワッチョイ 8f10-tCSL)
22/06/26 09:58:04 EKr6eQfX0.net
>0b 使えない
0xに変換か、どうせ定数なんだからそれっぽいマクロで代用しとけばヨロシ。

805:デフォルトの名無しさん
22/06/26 10:58:18.13 hEbl3kj1a.net
orをandで記述する方法は

806:デフォルトの名無しさん
22/06/26 11:05:33.04 j/Qk9Cw40.net
負論理

807:デフォルトの名無しさん
22/06/26 11:39:10.83 ImrLxjwid.net
A|B == ~( ~A & ~B )
だけどまったく意味はないな

808:デフォルトの名無しさん
22/06/26 11:50:57.28 9tvF1jx30.net
ソースを難解にする�


809:フに多少貢献



810:デフォルトの名無しさん
22/06/26 14:00:18.84 r2JBCRM90.net
怒(プイプイ)モルカーだな

811:デフォルトの名無しさん (ワッチョイ fdbb-/dRU)
22/07/09 06:20:44 LJ5BAcPW0.net
今日の学び
voidは1バイト

812:デフォルトの名無しさん (ワッチョイ 355f-UQ1h)
22/07/09 11:11:08 8isXQv7m0.net
>>798 たぶんgcc拡張のポインタ演算の話でしょ。他ではそんなこと言えないから気を付けて。

813:デフォルトの名無しさん (ワッチョイ fdbb-/dRU)
22/07/09 12:16:19 LJ5BAcPW0.net
>>799
GCCだけど

printf("%d\n", sizeof(void)); // 1

になる。
これGCCだけなん?

814:デフォルトの名無しさん (スッップ Sd43-jz6z)
22/07/09 12:23:26 U9EmutCWd.net
URLリンク(gcc.gnu.org)

815:デフォルトの名無しさん (ワッチョイ fdbb-/dRU)
22/07/09 12:27:53 LJ5BAcPW0.net
>>801
へ~知らなかった

816:デフォルトの名無しさん (ワッチョイ cb63-TkQT)
22/07/09 12:31:03 Pcby8BG30.net
ではvoid型変数 sを宣言してみて下さい
サイズを測ってご覧にいれます

817:デフォルトの名無しさん (ブーイモ MMcb-bSlT)
22/07/09 12:37:25 rCvRfQZvM.net
糞坊主が

818:デフォルトの名無しさん (ワッチョイ 8302-Fj9x)
22/07/09 12:39:57 OQU8CgWM0.net
屏風に描いたvoidなんつって

819:デフォルトの名無しさん (ワッチョイ 23ad-jVDF)
22/07/09 20:15:12 A5P06KhI0.net
ヘ_ヘ
ミ・・ ミ
(   )~

820:デフォルトの名無しさん
22/07/09 20:56:46.61 2FL2bpN80.net
他人のふんどしで勝負する男の人って‥‥

821:デフォルトの名無しさん
22/07/09 21:10:00.31 eJjSZ+Lo0.net
はなししとは?
 ヘ_ヘ
ミ・・ ミ  
(   )~

822:デフォルトの名無しさん
22/07/10 01:02:53.42 NKXzP1tS0.net
このスレに50代の者が居ると見た

823:デフォルトの名無しさん
22/07/10 01:43:41.30 4ppCSg1ba.net
70までおるじゃろ

824:デフォルトの名無しさん
22/07/10 05:01:57.35 teKb0H7o0.net
ム板の寄合所かよ

825:デフォルトの名無しさん
22/07/10 15:27:56.20 EpSIEDJ/H.net
>>808
他人のふんどしで勝負する男の人って‥‥

826:デフォルトの名無しさん
22/07/10 15:35:59.80 IXzc/cv30.net
みっともねえよな
そんなことまでパクリしかできねえやつ
# 奴が来なくなって20年近く経ってんのに進歩してやがらねえ

827:デフォルトの名無しさん
22/07/10 15:38:00.79 pOdXKR0zH.net
>>813
ですよね

828:デフォルトの名無しさん
22/07/11 08:40:13.85 2XjvtJRn0.net
voidの長さはよくわからんが、取り敢えずvoid*のインクリ幅を実装の最小単位に取っておけば何でも指せるし、そのアドレス演算に意味を持たせる事も可能になる
どうしてもvoidのサイズを決めたいというのなら、まあ合理的な実装だと思う

829:デフォルトの名無しさん
22/07/11 13:22:34.96 cGEUsgsp0.net
void*のインクリ幅に何か意味があるの?

830:デフォルトの名無しさん (ワッチョイ e369-TkQT)
22/07/11 17:20:33 lWPgqJ6O0.net
char*でいいじゃん
なんだかわからないものは「バイト列」だろ

831:デフォルトの名無しさん (ワッチョイ 7510-TkQT)
22/07/11 17:41:30 TkfF8Lfy0.net
警告されるから

832:デフォルトの名無しさん (ワッチョイ cb63-TkQT)
22/07/11 17:44:52 rBy2qCXb0.net
普通は明示的キャストを介して使うよな

833:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b3e-TkQT)
22/07/11 17:46:10 POJvWuxZ0.net
そう。
オブジェクトを指すポインタは void* との間で「暗黙に」変換することが出来る。
最終的に char* にキャストするのだとしてもインターフェイス (仮引数) が void* だとキャストをせずに済む。
memmove とかがそれ。

834:デフォルトの名無しさん
22/07/11 22:57:06.26 7aXqGp3Qd.net
なんでも指せるのとインクリメント幅を1にするのは関係ない
むしろインクリメントしようとしたらミスである可能性が高いのでワーニングかエラーにすべき

835:デフォルトの名無しさん
22/07/12 07:13:33.37 MjEzd7ZRd.net
ハード的な最小単位へのポインタは欲しいね
charって書くの本当は気持ち悪い

836:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b3e-TkQT)
22/07/12 10:12:07 AnYAkaOT0.net
C の仕様上はアドレスを定義できる単位をバイトと呼び、 char は 1 バイトであると定義されてる。
つまり char はハードウェア的な最小単位と言えるが……、まあ名前が良くないのは確か。

837:デフォルトの名無しさん
22/07/12 12:14:37.21 MjEzd7ZRd.net
つーか符号がどうたら言われたくない

838:デフォルトの名無しさん
22/07/12 17:26:10.54 DhrJi4Do0.net
(char が 7bit の系って生き残ってるのかしら?)

839:デフォルトの名無しさん
22/07/12 17:42:00.57 4CshQ+Jw0.net
というかなんでcharってsignedにしてあるんだろ?
char と unsigned charじゃなくてchar と signed char にしてくれていればよかったのにと思わなくもない
intもsignedだし(逆にintがunsignedだったら使いづらいけど)符号付の計算が基本とかあるのかね?

840:デフォルトの名無しさん (ワッチョイ a5d2-WFmy)
22/07/12 17:58:33 YvrX4qJi0.net
C++ではcharが符号付きか符号なしかは環境依存だよ
unsigned charともsigned charとも別の型扱いされる不思議な子

たぶんC言語でも同じ扱いだろう

841:デフォルトの名無しさん (ラクッペペ MMcb-KYPL)
22/07/12 18:06:57 ydFOrexCM.net
charの符号は処理系依存と違ったっけ?

842:はちみつ餃子
22/07/12 18:30:46.85 AnYAkaOT0.net
そう。 >>827 の説明が正しい。
char の符号は処理系定義かつ signed char とも unsigned char とも異なる独立した型。
signed char か unsigned char のどちらかと別名という可能性もないので、
C++ のオーバーロードや C の _Generic で三種類に分岐することは出来るよ。
char は整数だから他の整数型との一貫性で考えれば符号付きになるのが自然なようにも思えるが……、
実行基本文字集合は char で (char が符号有りだとしても) 正の値になることを
要求している (C99 だと 6.2.5 に書いてある) ので各環境が採用している文字コードによっては
符号無しにせざるを得なかったのだと思う。
EBCDIC とかだとどうしてもそうなる。
まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、
仕様が成立した時点でそうでない想定をしているコードが結構あったりしたんじゃないかな。

843:デフォルトの名無しさん
22/07/12 18:31:52.31 xJzxH9jqa.net
>>825
規格では8bit以上だったはず
URLリンク(www.bohyoh.com)

844:デフォルトの名無しさん
22/07/13 11:20:33.14 Zw91A11j0.net
>>829
>まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、
比較の際に暗黙で走る int への格上げの時にややこしくなりそうやね
char ch;
...
if (ch >= 0x80) // 上位ビット立ってる?

845:デフォルトの名無しさん
22/07/13 11:53:33.59 CCByLcFJM.net
&buf[0] ってbufと同じだよな?
なんか意味あんのこの書き方?

846:デフォルトの名無しさん
22/07/13 12:43:05.67 hH7ZnQ+pM.net
&buf[0] 配列の先頭要素のアドレス
buf 配列の先頭のアドレス
同じ
sizeof(&buf[0]) 配列の先頭要素のサイズ
sizeof(buf) 配列のサイズ
異なる
配列の要素数を求める場合
sizeof(buf)/sizeof(&buf[0])
で頻出する

847:デフォルトの名無しさん
22/07/13 12:44:54.67 WjRfIVOeM.net
センキュー

848:蟻人間
22/07/13 12:52:57.77 H8j4+v2od.net
>>833
>配列の要素数を求める場合
>sizeof(buf)/sizeof(&buf[0])
>で頻出する
ダウト。sizeof(buf)/sizeof(buf[0])の間違い。

849:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a33e-TkQT)
22/07/13 14:23:32 Kb1eM8RI0.net
>>832
配列の先頭としての意味よりその要素に意味があるということを強調した雰囲気を表すためにそういう書き方をすることはあるよ。
仕様としての解釈 (動作) に差が無い場面であっても人が読む上では雰囲気の差はある。

850:デフォルトの名無しさん
22/07/13 16:51:43.98 Zw91A11j0.net
添え字が非0 のとき &buf[1] か buf+1
添え字が0 のとき &buf[1] か buf+0 か buf か
同じコードになるけど記述に意味を見出すかどうか

851:デフォルトの名無しさん
22/07/13 17:38:26.38 H0DndFW/a.net
_countof使わないのか

852:はちみつ餃子
22/07/14 13:40:03.36 m4fVu3Vb0.net
配列の大きさを知る演算子くらい標準入りしてもよさそうなもんだとは思う。

853:デフォルトの名無しさん
22/07/14 13:46:25.72 YnALXIBFd.net
ポインタに使うアフォが出てくるに1ペリカ

854:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a33e-TkQT)
22/07/14 14:14:28 m4fVu3Vb0.net
むしろ、イディオムやマクロによる素朴な実装だとポインタを渡してもエラーなく通過してしまうからこそ
言語の機能として提供して然るべきだと思うよ。

855:デフォルトの名無しさん (アウアウウー Sa09-S3zt)
22/07/14 14:49:53 abQKMdR+a.net
結局、配列が無いのが問題、みたいな

856:デフォルトの名無しさん (ワッチョイ cb63-TkQT)
22/07/14 15:26:18 fgF/JGu/0.net
配列とは別に文字列型作れば良かったのかな

857:デフォルトの名無しさん
22/07/15 19:30:20.65 r8EwCLZ2d.net
それを言ったら破門だよ

858:デフォルトの名無しさん
22/07/15 22:46:23.97 vZ8IDyva0.net
string_t *s = str_alloc();

859:デフォルトの名無しさん
22/07/17 00:26:30.17 1DBmbCgq0.net
char a[32];
char b[32];
fp = fopen("abc.csv", "r");
for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){
printf("%s %s\n", a, b);
}
fclose(fp);

860:デフォルトの名無しさん
22/07/17 00:28:02.51 1DBmbCgq0.net
test.c:23:31: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=]
for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){
           ^^
問題なく動くんですが、上のような警告が出ます。
気にしなくても良いですか?

861:デフォルトの名無しさん
22/07/17 01:16:21.70 RIt+yucva.net
&a[0]にでもしたらいいかもな
警告出さなきゃ出ないんじゃなかったかな

862:デフォルトの名無しさん
22/07/17 04:38:20.42 tV/KWY8I0.net
指定子の数と引数の数が合ってないのでは?

863:デフォルトの名無しさん
22/07/17 09:31:19.06 5kV34GW+0.net
%s は1つで良いんじゃね?

864:デフォルトの名無しさん
22/07/17 09:48:19.50 gh7Bz7cid.net
%sが多いね
あと32バイト以上あったらクラッシュするけどいいの

865:デフォルトの名無しさん
22/07/17 11:10:26.64 tV/KWY8I0.net
>>846
そのコードで問題なく動くならabc.csvがかなり特殊な形式だと思う
URLリンク(ideone.com)

866:デフォルトの名無しさん
22/07/17 12:37:05.79 Fwel5trjd.net
最初の%[^,]でa[]にコンマの前までが取られて
次の%sが行末までをb[]に取るから
その次の%sをコピーするポインタが指定されてないので本来はここでクラッシュするけど
前の%sで行末に行ってるのでこの%sは必ず無視されるという綱渡り状態
直しておいたほうがいいよ

867:847 (ワッチョイ 7db3-pN0Z)
22/07/18 00:57:42 i3ini+Eo0.net
サンクス(´・ω・`)

868:デフォルトの名無しさん
22/07/21 23:01:29.27 qNAIu8qZa.net
生徒数と科目数と点数をキーボードから入力し、それぞれの科目数の個人、全体の合計点数、(科目数の個人、全体の)平均点をそれぞれ出すプログラミングをやっているのですが、全く分からないので教えてください。

869:デフォルトの名無しさん
22/07/21 23:24:42.74 25qjJOkGr.net
キーボードから入力する方法がわからないのか、平均点をだす方法がわからないのか?

870:デフォルトの名無しさん
22/07/21 23:58:01.60 tQt8NkV/0.net
多分学校の宿題かなにかなんだろうが、
言葉足らずで相当補わないと問題が分からない
出題されたまんまの内容を書いてみてくれないか

871:デフォルトの名無しさん
22/07/22 01:39:33.12 fX2QhDiX0.net
「全く分からない」に対してわかるように教えるには入門書の頭から説明しないと理解できない状態ってことだからなぁ。
それなら普通に入門書を読むべき (その上でどうしても理解できない箇所があるならそれを質問すべき) という話だし、
理解する気が無くてそういうプログラムが欲しいだけなら宿題スレに投下したほうがいい。

872:デフォルトの名無しさん
22/07/22 03:00:46.63 GQs5tpkHd.net
質問者です
僕は答えだけが欲しいんです。どうして説教なんかしてくるんですか?
貴方達は黙ってコードを書いてくれるだけでいいんです。それ以外のことを私は貴方達に求めていません
ご回答よろしくお願い致します

873:蟻人間
22/07/22 04:01:58.51 9CWw4cOJd.net
成績を収める配列変数を宣言して下さい。
ループ変数iとforループを使ってデータ入力する処理を記述して下さい。
ループ変数iとforループを使って合計を求める処理を記述して下さい。
合計と件数より、平均値を計算して下さい。

874:デフォルトの名無しさん
22/07/22 13:35:19.04 63Xcy7bk0.net
>>859
回答するから駅前でパンツ脱いで待ってろ

875:デフォルトの名無しさん
22/07/22 13:53:06.84 o6RHeQNrM.net
jkの視線が辛いです…

876:デフォルトの名無しさん
22/07/22 16:50:00.97 FTsytUCEd.net
近道を教えてください
目的地?そんなもの知らん
いじわるしないで近道だけ教えてくださいよ

877:デフォルトの名無しさん
22/07/22 17:05:43.46 5FG7Keur0.net
だから宿題スレ逝けってば

878:デフォルトの名無しさん
22/07/22 17:48:50.97 xVgLzEHZ0.net
他人にコード書いてもらいたいならお金払うのが常識だぞ
勉強になったな

879:デフォルトの名無しさん
22/07/22 18:36:47.63 iW5ae+Pc0.net
>>859
別人か?
釣りか?
スレを活性化させるための煽りか?

880:デフォルトの名無しさん
22/07/22 20:52:21.05 6vEMzc8Xd.net
>>866
別人です
釣りです
スレを活性化させるための煽りです
そもそもワッチョイ見れば分かるけどキャリア違うし
>>863も同じような輩でしょ

881:ハノン
22/07/22 21:13:42.27 axiBU42YH.net
炎上学習法がはじまりました…

882:デフォルトの名無しさん
22/07/22 22:22:56.34 V/ouQpU1d.net
>>867
皮肉って概念を聞いたことあるかね

883:デフォルトの名無しさん (ワッチョイ daad-Vb2/)
22/07/22 23:07:49 iW5ae+Pc0.net
そういや Excel 使った方が楽にできそうな問題だな。

884:デフォルトの名無しさん
22/07/23 06:55:01.01 GjOkJS/b0.net
絶望的に適性ないやつがいるな
そんな無駄なことは今すぐやめろ
限りある人生をもっと有意義なことに使え

885:デフォルトの名無しさん
22/07/23 20:24:50.53 xI/QpgaL0.net
たとえば?

886:デフォルトの名無しさん
22/07/23 20:54:12.53 ZMU4WQ2EH.net
>>871
1.適性がない、というその適性を定義してください。
2.適性がない、となぜ判断したのか 1. をもとに詳しく記述してください
3.1.2.が出来ないのではないのならば、あなたこそ、あなたのいう適性をもちあわせていない、と私は判断します
以上

887:デフォルトの名無しさん (スプッッ Sd73-ENu5)
22/07/23 21:02:39 qM4duTiyd.net
エラーや不具合があったときに理屈じゃなくて直感ですぐに原因が思いつく


888:タイプは適性があると思う 経験で補えるっちゃ補えるけど



889:デフォルトの名無しさん
22/07/23 22:07:51.06 HvDaSJUkd.net
>>873
あんたの判断がどうかしたのか

890:デフォルトの名無しさん
22/07/23 22:19:32.27 KvepzSxm0.net
当社比

891:デフォルトの名無しさん
22/07/23 23:01:14.87 FDsLOdQw0.net
>>874
人間の無意識領域が活発に活動している証拠ですね
最近は前野隆司氏の受動意識仮説に心惹かれます
実験心理学からは「準備運動電位」がずいぶん前に提示されていますが、今はどこまでわかっているのでしょうか?
スレリンク(tech板:703番)
スレリンク(tech板:23番)

892:デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
22/07/24 06:47:50 cLNfquIV0.net
>>873
どうした、頭に血が昇ってw
身に覚えがあるんだろ

別に俺が定義しようがしまいが関係ない
おまえが直面している現実が全てだ

コード書けねえんだろバーカw
そんなん俺は厨房の頃からやってたぜ
当時はBASICすらなく機械語だった
やるやつは人のせいになんかしねえんだよ

893:デフォルトの名無しさん (スップ Sd33-ENu5)
22/07/24 07:04:34 gwuc5Le4d.net
ジジイがイキってるの悲しすぎるな
キャリア積んだおっさんならもうコードなんて書いてないのに

894:デフォルトの名無しさん
22/07/24 07:35:48.77 kz71o77Jd.net
>>874
経験がないとそんなことは無理だな
経験によって結果から原因を推定するデータベースを増やしているに過ぎない
生まれつきプログラマになるべく生まれた人間などいないw

895:デフォルトの名無しさん
22/07/24 08:01:42.09 QsSUkFLAM.net
直感というより論理(左脳)と感性(右脳)のどちらの活性が高いかの違い

896:デフォルトの名無しさん
22/07/24 08:03:50.29 bdlqmtah0.net
>>880
同じ事象に遭遇しても原因を自分でちゃんと究明して対策してる奴と人に言われて直すだけの奴だと取得する経験値がだいぶ違うだろ
そういう意味での適性はあると思う

897:デフォルトの名無しさん (スップ Sd73-E5Ow)
22/07/24 08:41:03 mCJq3UO5d.net
>>879
何も知らねえネンネだなw
熟練者を歳だけでやめさせるバカ企業が
今どうなってるか見りゃわかるだろめくら
IT業界だけ特別とでも思ってんのか

昭和の一時期だけ特別だったが
いい歳こいたジジイが言ってんなら
進化の止まった化石はてめーだ

898:デフォルトの名無しさん (スップ Sd33-ENu5)
22/07/24 09:04:36 gwuc5Le4d.net
>>883
コーダージジイ効いてて草
こういうやつってマジでガキに見えるよなー
人の上に立った経験とか一度も無さそう

899:デフォルトの名無しさん
22/07/24 10:46:43.07 Zzdkl5Gk0.net
>>880
しかし、生まれつき、あるいは育ちのせいであるのかもしれませんが、無意識領域が活発に活動しやすい人、というのはあるかもしれませんよ
人はそれを「閃きの人」と呼ぶようですが
そして無意識領域がよく働く人はプログラマの適性があるといってもいいでしょうね
スレリンク(tech板:703番)
スレリンク(tech板:23番)

900:デフォルトの名無しさん
22/07/24 11:42:01.96 W6pjxqRvM.net
閃き改変スパゲティ

901:デフォルトの名無しさん
22/07/24 16:22:46.57 9ixHhHoi0.net
BASICもない時代か。
俺の時は TK-80 に BS 乗っかったやつが BIT-INN に並んでたな。カラーの COMPO-BS もあった。
その他 Apple ][、PET、TRS-80、BASIC MASTER Level 2、MZ-80K 等がある時代で、フロッピーディスクが Apple のやつは1枚2000円だったかな?

902:デフォルトの名無しさん
22/07/24 16:31:31.34 95dB6L1Ta.net
COMPOにカラーなんてあった?

903:デフォルトの名無しさん
22/07/24 16:45:38.99 9ixHhHoi0.net
>>888
なかったっけ? あったような気がするんだが。
PC-8001 の画面の見間違いではないと思う。まだ出てなかったし。

904:デフォルトの名無しさん
22/07/24 16:49:13.87 cLNfquIV0.net
>>884
コード書けねえ産業廃棄物がコーダー馬鹿にしてんな
フリーターだのニートだのってレベルの稼ぎの扶養虫にしかなれる見込ねえくせに
俺は生まれながらの帝王だ退かぬ媚びぬ省みぬだと? ぶわははは
這い上がる気力のねえやつに栄光はねえんだよ、憶えておきな

905:デフォルトの名無しさん
22/07/24 17:04:41.33 xRzJF5neF.net
>>885
受動意識みたいなオカルトに構っていてはプログラマにはなれませんよ
プロの仕事にはすべて説明可能なことが求められます
どこかのリモートで動いてる端末人間にプログラムはできません

906:デフォルトの名無しさん (ワッチョイ 1301-T1rX)
22/07/24 17:18:29 bdlqmtah0.net
なかったと思うよ、そもそもCOMPO-BS/80はキャラクター表示しかできないし

907:デフォルトの名無しさん (US 0H0b-RyvJ)
22/07/24 17:25:59 C0umvz7vH.net
>>891
デバッグ箇所の発見にも説明が求められるのですか?バグが修正されたことを証明できれば十分なのではないでしょうか?

908:デフォルトの名無しさん
22/07/24 17:34:50.38 cLNfquIV0.net
発見に至る思考過程はいらんな
ドライに事実関係の説明のみで足りる
犯人探しは俺らの仕事ではなく
下手に口を出すとこっちが立場悪くなる

909:デフォルトの名無しさん
22/07/24 18:23:35.95 nci3iowod.net
>>893
>デバッグ箇所の発見
バグ箇所のことかな
どうしてそのようなバグが発生したかまで明確にしないと
同じバグがまた起こるだろう

910:デフォルトの名無しさん
22/07/24 18:43:56.60 3i0SwxtcH.net
>>895
話をずらしましたね
私は
>デバッグ箇所の発見
つまり、どこから手をつければいいか当たりをつける能力について言及したのであって、発見したバグの振る舞いについて説明する必要はないとはいっていませんね
話をずらしてはいけませんよね

911:デフォルトの名無しさん
22/07/24 18:49:15.54 DQlWH9SB0.net
どこにバグがあるか、ゴーストがささやいてくれる

912:デフォルトの名無しさん
22/07/24 18:52:37.42 cLNfquIV0.net
言い逃れの天才はいらねーよ
頼むから志願してくんな
ゴミ処理だけでどんだけ負担か考えろ馬鹿が

913:デフォルトの名無しさん
22/07/24 18:54:41.69 cLNfquIV0.net
それで給料くださいだと? 金銭感覚が絶望的にバグってる超危険人物め

914:デフォルトの名無しさん
22/07/24 19:03:04.31 DQlWH9SB0.net
そういう人物は確かにいる
システム障害時に、数分で原因を調べ上げ復旧する奴

915:デフォルトの名無しさん
22/07/24 19:24:24.29 ZZNXvMhPH.net
>>900
その人なりのロジックがちゃんとあるけれども、凡人には理解できないのかもしれませんね…
まあ意識(ロジック)も無意識もフルに総動員しているとは思いますが
>>891
あくまでとある仮説に興味がある、といっているだけで、それですべてを説明しようとは思っていませんよ
それにしても「準備運動電位」、あなたはどう説明しますか?

916:デフォルトの名無しさん
22/07/24 19:27:04.95 cLNfquIV0.net
電位ってそれ以上でもそれ以下でもないな
喩え話でもしたいようだが、この世界では究極の最重度池沼ってだけw

917:デフォルトの名無しさん
22/07/24 19:32:05.82 bdlqmtah0.net
>>896
でかいシステムなら分割して調査することもあるからどこから調査するとかどうやって調査するかとか事前に決めるのは珍しくないぞ
そんなことも知らないのはお前の経験値が低いだけ

918:デフォルトの名無しさん
22/07/24 19:58:27.05 3wgufn1TH.net
>>903
そんなことはあたりまえでしょう?
手当たりしだいにしらみつぶしに見てバグが見つかるとでも?
でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ
そういう人間の考え方が、単にロジック一辺倒ではないのでは?という切り口で話をしているものだと思っているのですが
あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、
そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?

919:デフォルトの名無しさん
22/07/24 20:09:14.55 IZxLU3+7a.net
自分が正しいと考えていないに決まってるだろ

920:デフォルトの名無しさん
22/07/24 20:21:06.06 bdlqmtah0.net
>>904
> 手当たりしだいにしらみつぶしに見てバグが見つかるとでも?
それでないと見つからないバグもある
> でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ
そう言うのは経験値が違う
まあその考え方を文書化できるかどうかは別の話
> あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、
> そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?
お前はテストもしないのかよ

921:デフォルトの名無しさん
22/07/24 21:29:00.78 9ixHhHoi0.net
スレが活性化したようだな。
読む気が起こらんけど。

922:デフォルトの名無しさん
22/07/24 21:42:14.57 lVfeNqR1r.net
全然、C言語の話にならんな

923:デフォルトの名無しさん
22/07/24 21:44:29.10 +vY6C834M.net
話題に参加できない…

924:デフォルトの名無しさん
22/07/25 06:28:56.85 DH7dOKBU0.net
何でしらみつぶしが出てくるんだ
不具合の内容から疑われることを挙げて
排除できる項目を排除して疑う範囲を狭めていくにあたり
論理思考が得意なやつとそうでないやつの違いが出るってだけだ

925:デフォルトの名無しさん
22/07/25 07:35:59.20 fNFid1J7H.net
>>910
バグの排除にロジックが必要なのは当然ですが、それだけではないでしょう?
特に自分のバグを外すには、そもそも自分のロジックを疑うという能力は、ロジックを使うのはまず困難なのでは?

926:デフォルトの名無しさん
22/07/25 07:56:46.33 GzNr1keE0.net
>>910
疑う範囲を狭めて最後はしらみつぶしとか普通にあるだろ
なぜ排他だと思った?

927:デフォルトの名無しさん
22/07/25 08:14:58.48 DH7dOKBU0.net
バグの排除とは言ってない
疑いが晴れたものを検査から除外するということだ
なぜ排他が出てくるのか脈絡がわからない

928:デフォルトの名無しさん
22/07/25 09:21:33.29 /kQlrWHQa.net
>>913
> バグの排除とは言ってない
おれも言ってないけど?
> 疑いが晴れたものを検査から除外するということだ
検査の意味がわからんが調査のことならしらみつぶしは疑いを晴らす方法の一つ
> なぜ排他が出てくるのか脈絡がわからない
お前がしらみつぶしを排除しようとしてるから

929:デフォルトの名無しさん
22/07/25 09:31:36.48 DH7dOKBU0.net
アホ検知用にわざとアンカー貼らなかったら見事に引っかかったなw

930:デフォルトの名無しさん (ワッチョイ 1301-T1rX)
22/07/25 09:53:41 GzNr1keE0.net
なにを引っ掛けたつもりになってるのかさっぱりわからん
まあまともなレスを返せなくなったんだろうなw

931:デフォルトの名無しさん (ワッチョイ 1363-VsAj)
22/07/25 11:30:58 TD+9RuG80.net
仕事している人は、こんなところで遊んではいない

932:デフォルトの名無しさん
22/07/25 11:45:05.33 dJJE5upaa.net
C++の話題は禁止?

933:デフォルトの名無しさん
22/07/25 11:49:31.88 TD+9RuG80.net
禁止ではないと思うが、スレ違い扱い受ける

934:デフォルトの名無しさん (スップ Sd33-8HTV)
22/07/25 12:13:08 n7JQk0Isd.net
>>901
ただのDSPだろう
CPU(脳)が応答していては間に合わない用途のためにプログラマブルなDSPがある
ボールが見えてから打つかどうか決めていては間に合わない
このコースに来たらバットを振れと反射神経をプログラムできるようになっている
それがあたかも脳の判断に先行してるように見えるだけ

935:デフォルトの名無しさん
22/07/25 12:52:39.70 BRC10lp0d.net
>>914
流れ読めてないアフォハケーン

936:デフォルトの名無しさん
22/07/25 13:27:55.29 GzNr1keE0.net
>>921
レスできなくなって流れが読めてない~ってバカ?w

937:デフォルトの名無しさん
22/07/25 13:30:31.02 lj82liZDM.net
シーッ

938:デフォルトの名無しさん
22/07/25 15:49:07.62 iiUi9YtaA.net
はっきり言ってやらなきゃ解らんようだな
バグの排除と言ったのが誰なのか
おまえ読み間違えてんだよ

939:デフォルトの名無しさん
22/07/25 15:58:23.55 GzNr1keE0.net
>>924
だから>>911なんて俺には関係ないだろ
アンカーもまともに追えないのか?

940:デフォルトの名無しさん
22/07/25 16:01:28.30 TD+9RuG80.net
ロジックは合っているがバグだ、というのは割とよくある(まれにではない)

941:デフォルトの名無しさん
22/07/25 16:36:40.16 GzNr1keE0.net
>>926
・仕様バグ
・非同期処理絡み
・限界値オーバー等
それ以外ってあったっけ?

942:デフォルトの名無しさん
22/07/25 17:00:35.20 TD+9RuG80.net
今は昔、DBが気軽に使えなかったシステムがあった。
プレーンファイルにデータが格納されていた。
お客の要求は、
「その中からキャンセルされたデータを見つけ、取り除いてくれ。件数は高々数十件のはず」
当時のSEは、キャセルデータ一覧から一つずつデータを取り出し、
格納されたファイルから見つけてはキャンセルフラグをセットしていく
という設計をした。スッキリした設計で、客のレビューも通った。
プログラマは仕様書通りにプログラムを作成した。
実運用に入ったところ、この処理がいつまで経っても(何時間も)終わらない事態になった。
原因調査を依頼され、調べて対処方法を提案し、
プログラムの手直しをした。
その結果、処理は10分程度で終わる様になった。
実データは、お客の想定よりは多かった(と言っても100件程度だったが)ことと
試験環境が貧弱で、性能評価が不十分だったことが挙げられた(公式見解)。

943:デフォルトの名無しさん
22/07/25 17:06:35.01 p29EsXcp0.net
今は昔 ドラゴンボールというものありけり
7つ集めないと気軽に使えなかった

944:デフォルトの名無しさん
22/07/25 19:19:30.93 0R5nn0qA0.net
非同期やマルチスレッドなんかの 暗に平行に動いてるようなやつ
の想定順序外の順で進んでったとき

945:デフォルトの名無しさん
22/07/25 19:25:09.85 gun8tVmY0.net
昔のプログラム系コラムで(うろ覚えなんで改変あり)
統計計算するコード書いて、
自分で用意したデータでは問題なかったが、
デバッガ―チームのデータでは誤差が酷いとの報告が。
変数をfloatからdoubleにしても改善せず、
使ったテストデータ見せてもらったら数値が10兆のや1/10兆のまであったとかなんとか。

946:デフォルトの名無しさん (ワッチョイ 8bbb-OROS)
22/07/25 19:42:53 uz33IoOs0.net
それって範囲チェックを怠った普通のバグよね?

947:デフォルトの名無しさん
22/07/25 20:13:02.04 GzNr1keE0.net
>>928,931
件数や数値の範囲を規定してなかったんだろうな
規定してたらテストしてるだろうし
>>928の方はキャンセルする件数も重要だけど変更するプレーンファイルのサイズも重要

948:デフォルトの名無しさん
22/07/25 21:04:57.01 TD+9RuG80.net
仕様通りに作ってあるってことで
どこもバグだと認めず、修正にかかれなかった

949:デフォルトの名無しさん (ワッチョイ 1301-T1rX)
22/07/25 21:23:11 GzNr1keE0.net
実行時間の上限も書いてなかったんでしょ?
ならバグじゃないからそりゃ誰も修正しないよね

950:デフォルトの名無しさん (ワッチョイ 1363-VsAj)
22/07/25 22:30:59 TD+9RuG80.net
そうもいかん
放置すれば業務が止まる

951:デフォルトの名無しさん
22/07/26 04:44:04.50 1cOtUCQ/0.net
なら仕様を作った奴がポンコツだったってだけの話

952:デフォルトの名無しさん
22/07/26 06:23:30.91 3o/UjHLA0.net
>>937
奈良仕様... 要人警護でバグるんだな。

953:デフォルトの名無しさん
22/07/26 15:23:03.61 SJaqZdjxH.net
>>920
それは条件反射ではない普通の「反射」
か、あるいは条件反射ですね
「準備運動電位」
URLリンク(ja.wikipedia.org)
1970年代に行われた実験により、ボタンを押す・指を一本曲げる、手首を曲げる等運動の先立って脳に変化が起こる、という観測結果が得られています
2008 年には、被験者が意思決定をするよりも最大 7 秒先立って脳活動が認められる、という^報告がありました

954:デフォルトの名無しさん
22/07/26 18:24:38.80 fW/tQ0510.net
その生理現象を検知して価値を生み出すコードを書くならともかく
精神論や根性論の類いに持ち出す野郎はスレチ

955:デフォルトの名無しさん
22/07/26 20:36:46.75 s+/k7yg8H.net
>>940
ええ、バグ取りに使えないものかと
異様にバグ取りがうまい人の頭の使い方について話題にしようと思ったんですよ

956:デフォルトの名無しさん
22/07/26 20:59:48.42 RzFS95olr.net
そんなの経験の差でしょ
脳科学なんかを引くより経験積んだほうが実用的で合理的

957:デフォルトの名無しさん
22/07/26 21:21:37.87 LALlY+2gH.net
>>942
いつまでも KKD ではねえ
もう少し精緻な話がしたいものです

958:デフォルトの名無しさん
22/07/26 21:22:24.36 4nABh0qj0.net
バグ取りの上手い人というか、発見が早い人は
アスペ気味の人が多い
これは悪い意味で言っているのではなく
天才肌というか、直感でものを把握出来る人という意味です

959:デフォルトの名無しさん
22/07/26 21:24:16.26 LALlY+2gH.net
>>944
それもアラアラな話だと思いますが
しかし、その直感でものを把握できる、ってのがどういう思考法なのか興味がありますね
もう少しそのタイプのプロフィールを教えていただけませんか?

960:デフォルトの名無しさん
22/07/26 21:33:29.39 4nABh0qj0.net
そういうのは、誰もマネが出来ないから参考にするのは無理でしょう
脳細胞のシナプスからして違うかもしれないし

961:アリ人間
22/07/26 21:58:01.96 SFGiBpCod.net
プログラムの仕組みを完全に理解したいなら、ITパスポート、基本情報、コンピュータサイエンスの3つ。

962:デフォルトの名無しさん
22/07/28 12:32:34.18 FYpyeWPbd.net
>>941
C++の話ではないね

963:デフォルトの名無しさん
22/07/28 14:58:27.27 9giz0zU00.net
あ、Cだった
同じことだが

964:デフォルトの名無しさん
22/07/28 15:27:42.65 hSAjJRb60.net
混ぜたら駄目、危険!

965:デフォルトの名無しさん
22/07/28 17:42:15.99 9giz0zU00.net
プロの化学者つかまえて次亜塩素酸ナトリウムと塩酸を混ぜるなとドヤるアホ
みたいなもんだな

966:デフォルトの名無しさん
22/07/28 17:53:09.20 j+X5VIDEM.net
混ぜるな危険
ECMA 372

967:デフォルトの名無しさん
22/07/28 19:46:49.41 X16X3UK80.net
>>945
直感って大抵は経験に基づくショートカット。
常人でも意識しながら年単位でデバッグ続けてりゃ多少は身につくんじゃねの?

968:デフォルトの名無しさん
22/07/28 20:04:33.20 KHWw5jDSH.net
>>953
身につくかどうか、ではなく、どんな考え方、思考法、そして可能であればその思考法に似た行動様式等がざっくばらんに出てくることを期待します

969:デフォルトの名無しさん
22/07/29 10:43:07.31 nIcw6oQba.net
>>954
鏡で自分の顔を観てバグを一覧にしてみ
良い訓練になる

970:デフォルトの名無しさん
22/07/29 13:39:55.55 LR/vrGjN0.net
これ俺の顔じゃない
鏡がバグってる

971:デフォルトの名無しさん (ワッチョイ 79bb-dSCr)
22/07/30 00:46:07 wZaxY20D0.net
組み込みの世界ってまだC言語が主流ですよね?
IoTも同じ?

972:デフォルトの名無しさん (ワッチョイ 9a3e-dSCr)
22/07/30 00:52:24 B4kVDCsM0.net
IoT というのは広い概念なのでそれだけではなんとも言えん。
低レイヤもあれば高レイヤもある。

973:デフォルトの名無しさん
22/07/30 13:46:54.93 kKuVH5i8M.net
I Of the Tiger

974:デフォルトの名無しさん
22/07/30 15:28:57.06 sZRL8Eez0.net
Intensity Output Time

975:デフォルトの名無しさん
22/07/30 16:11:54.93 2k62MWGF0.net
次のCの仕様が出てくるというのにこのスレでは全く話題にならないんだな

976:デフォルトの名無しさん
22/07/30 16:16:00.43 dAB37O5c0.net
tccで標準入力からソース読むプログラムに、さらにstdinからデータ読ませるのは無理ですかね?
(echo "ccode with stdin" | tcc -run - ) <file
みたいな感じで(fileまでソースと取られてコンパイルエラー)
一時ファイル作れば出来るけど、ちょっとワンライナー書くときに不便を感じる
echo "main(char*c, char**v){puts(v[0]);puts(__FILE__);}" | tcc -run -

-
<stdin>
を出力します、多分tccはプロセスを自己書き換えで置き換えるんでしょうか?ファイルハンドルが継承されてる?

977:デフォルトの名無しさん
22/07/30 16:20:55.72 2BJ7IgJr0.net
新しいCってそもそもどこで需要があるんだろう

978:デフォルトの名無しさん
22/07/30 16:38:39.78 wZaxY20D0.net
>>958
高レイヤーだと普通にリッチな言語が使われたりするのかな
>>961
deferが入るかもって別スレで見かけたけど本当?

979:デフォルトの名無しさん
22/07/30 16:55:11.02 KiVbgp3AM.net
組み込みと言ってもラズパイ環境では完全にPythonが主流でC/C++(gcc)はあまり利用されてないイメージがある

980:デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
22/07/30 17:15:44 rf6S0zxh0.net
組込って普通は静的バイナリにするんじゃないの

981:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
22/07/30 17:20:48 B4kVDCsM0.net
>>964
C23 には defer は入らない見込み。 全体としては C++ の後追い的な変更が多い。

auto が型推論付きの変数定義になるだとか、constexpr や nullptr が導入されるだとか、
属性の表記法が C++ 風の [[ ]] を使った形になるだとか、そういう感じのやつ。
(ちなみに今回導入される constexpr は変数には付けられるが関数には付けられないので
コンパイル時プログラミングが C++ みたいに出来るわけではない。
定数式の成立要件が C と C++ で違うので C++ 寄りにする追加機能。)

思い切った変更ではあるが、根本的なプログラミングスタイルを変えない程度のバランスのとれたところだと思う。

982:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
22/07/30 17:34:09 B4kVDCsM0.net
>>966
もちろんそういう部分も大きいけど……。
リッチな組み込みは一昔前のパソコンを超えるくらいの性能はあるし Linux くらいは載るので、
デバイスドライバさえ用意すればあとはパソコンみたいに使えるという場合は普通にある。
かつては組み込みと言えばそのデバイスドライバの部分こそ大きかったと思うんだが、
IoT を意識するレベルの製品だとアプリケーションレイヤが巨大なので Python くらいは動くこともあるだろう。
主流かというとちょっと疑問ではあるが……。

983:デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
22/07/30 17:38:53 rf6S0zxh0.net
それは組み込みと言うより、OS上で動かしている単なるアプリだろう

984:デフォルトの名無しさん (ラクッペペ MMee-kNao)
22/07/30 17:48:55 lDkW8Lp7M.net
URLリンク(www.google.co.jp)

985:デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
22/07/30 17:50:58 rf6S0zxh0.net
パソコンで同じことやっても組み込みなんて言わないし

986:デフォルトの名無しさん (ラクッペペ MMee-kNao)
22/07/30 18:00:48 jaybBP1OM.net
組み込みの開発はクロス開発が基本なのでパソコンはただの端末だけどね
プログラムはボード上のSoCで実行される

987:デフォルトの名無しさん
22/07/30 19:32:55.53 wZaxY20D0.net
IoTにはC言語は深く入り込んでないのか
>>967
型推論付くってマジ?
個人的には嬉しい

988:デフォルトの名無しさん
22/07/30 19:50:32.99 zHogqexf0.net
>>964
> 高レイヤーだと普通にリッチな言語が使われたりするのかな
複合機などはWebサーバー程度は普通に入ってるから設定画面等は HTML, JavaScript, CSS, Python を使ってたりする
IWS (Internal Web Server:HTML, JavaScript, CSS, Python)
URLリンク(dsp.konicaminolta.jp)
もちろんOS上で動いてるし、でかいシステムだとPCその物を内蔵してたりすることもある
なのでこんなものが売られてる
URLリンク(jpn.nec.com)

989:デフォルトの名無しさん
22/07/30 19:51:42.13 DgXxKl0UM.net
IoTというよりはスタンドアローン環境か小規模な独自ネットワーク程度の組み込み分野の方がC/C++利用は多いと思う

990:デフォルトの名無しさん
22/07/30 23:12:48.90 wZaxY20D0.net
>>974
こういう機材に囲まれたことないなー
俺はIoTは名前だけでほんとに実感がない

991:はちみつ餃子
22/07/30 23:53:43.60 B4kVDCsM0.net
>>969
機器に「組み込まれ」ているなら組み込みと呼んでいいだろう。
パソコンに近い構成にしてパソコンでも使えるソフトウェアを活用する場合があるというのは結果論だよ。

992:デフォルトの名無しさん
22/07/31 00:41:41.63 n00x/A2v0.net
そうなるとPC使っていても組み込み扱いして良いと言うことになりますよね
近い構成どころか、何でもありになりそう

993:はちみつ餃子
22/07/31 01:25:42.56 9sXTRHUo0.net
そうだよ。
技術的な実態としてはそんなにはっきりした境界がない。 なんでもありだ。
用途の側でふんわりと分野が分かれてる。

994:デフォルトの名無しさん
22/07/31 01:39:56.41 AA5JChgka.net
組込とハード制御的なやつの混同はよくありますね

995:デフォルトの名無しさん
22/07/31 06:39:14.45 1QnevV7r0.net
>>961
Cは枯れた言語で今さら新機能は誰も望んでないからな
むしろ余計なことをしてくれるなと

996:デフォルトの名無しさん
22/07/31 14:01:45.17 k/gcENLBM.net
古いソースが問題なくコンパイル出来ないと、それはそれで問題にされる。
今でもトライグラフ受け入れないと駄目なんだろう

997:ハノン
22/07/31 17:43:38.22 E3I5T4z5H.net
>>981
C99 の C++ との互換性がまったく取れていない変てこ機能はさっさと削除してほしいものです
いまや私は C のソースを書くのに C++ コンパイラが通るか試してみる体たらく、あれらはいったいなんなんだ?

998:はちみつ餃子
22/07/31 19:20:45.67 9sXTRHUo0.net
今回「削除」になったのはいわゆるK&Rスタイルの関数定義くらいだな。
いずれ削除するということは以前から書かれてたし、
習慣的にも行儀が悪いという考え方が支配的だから
これで問題が起こるなら長い移行期間中に対応できてなかったほうが悪いと言ってよかろ。

999:デフォルトの名無しさん
22/07/31 19:35:38.56 n00x/A2v0.net
削除って事は、古いソースのコンパイルはもはや出来ないと言うことなんでしょうか
いや、なに、クラシックカーに乗ってみたい位の好奇心ですけど

1000:アリ人間
22/07/31 19:46:09.16 sdKo2iJ+d.net
歳をとるということ 〃
シワが増えるということ 〃
なのに
ぼくたち
私たちは 〃
なぜ、最新機種で進化の止まった古臭いコンパイラを使うのでしょうか
でしょうか

1001:はちみつ餃子
22/07/31 20:23:09.10 9sXTRHUo0.net
>>985
削除された機能を使っていればそういうことになるが、
そもそも C で書かれたプログラムなんてどこかしらで環境依存な部分があるもんだし、
よほど配慮されたものでない限り古いコードは素直には動かないのが普通だろう。
まあ C23 が出来たからと言って C89 (に対応したコンパイラ) が直ちに消滅するわけでもないし、
なんだかんだであと二十年くらいたっても C89 派がそれなりにはいそうな気がする。

1002:デフォルトの名無しさん
22/07/31 20:35:31.51 1QnevV7r0.net
K&R CこそCの面白さの塊なんだけどな
GCCが「カバにダンスを踊らせるのはあまり面白くない」なんて言ってた人もいるように
歳月とともに雁字搦めになっていく流れは酷くつまらない

1003:デフォルトの名無しさん
22/07/31 20:47:12.68 TVIRLEiRH.net
>>988
でもね、C のコンパイラは C で記述してほしかったですね
確かにカバの調教は難しいのかもしれませんが
というか、gcc をコンパイルするためだけの c で書かれた c++ コンパイラって需要ありますかね?

1004:デフォルトの名無しさん
22/07/31 20:51:31.04 PC792jYOa.net
>>988
無理すんなよ

1005:蟻人間
22/07/31 20:59:27.98 sdKo2iJ+d.net
そろ次スレ

1006:デフォルトの名無しさん
22/07/31 21:03:23


1007:.63 ID:n00x/A2v0.net



1008:デフォルトの名無しさん
22/07/31 21:17:26.94 UwyiR8NW0.net
>>992
むしろnearポインタの方が面倒だと思うが...

1009:デフォルトの名無しさん (オッペケ Sr05-5tLW)
22/08/01 08:38:31 wVsEVhkpr.net
あり人間とかキチガイ、こっちでも頓珍漢なこと書いてるのか

1010:ハノン
22/08/01 19:47:44.58 kaXTkJ9F0.net
>>992
ラージモデルの far ポインタでしょう?別に far とか書かなくても普通にポインタを書けば far ポインタになったはず
であれば、あとは 64kb の壁を意識してむやみにポインタのインクリメントをせずに上手に部分にわければなんとかなったでしょう
far ポインタでの経験はいろんな場所で活かせる貴重な体験だと思いますよ
私は試食版 LSI-C のスモールモデルで陽に far を指定して far ポインタをバリバリつかっていましたよ
スモールモデルだからコード領域はせまいけれども(near コールしか使えない)、far と書けばデータは 640KB までフルに使えましたし

1011:デフォルトの名無しさん (ワッチョイ 16ae-G1eK)
22/08/01 20:05:11 4CMby4Hu0.net
インテルのクソ設計でみんな迷惑してたってだけの話
K&R Cの楽しさとは全く何の関係もない
68kと86系は異次元の世界だった

1012:デフォルトの名無しさん
22/08/01 20:55:56.73 4h+jHRsn0.net
>>995
テキトー書く前に8086 メモリーモデル とか near far huge とかでググってから出直してこい

1013:ハノン
22/08/02 07:34:13.90 QS3wPWC90.net
>>997
私の認識であってますよ
ラージモデルのデフォルトポインタ(データ・コードとも)は far ですし、スモールモデルはどちらも near
しかしスモールモデルでも far ポインタは far と陽に宣言すれば使えるんですよ…

1014:デフォルトの名無しさん
22/08/02 11:58:06.82 ziGJzmHZd.net
Windows16ビットのCでは16ビットハンドルを架空の構造体へのnearポインタとして実装してたな(#define STRICTした場合)
例えばデバイスコンテキストハンドルをビットマップハンドルに代入しようとするとtype mismatchエラーになってすぐわかる
STRICTでないと単なる本来の16ビット整数として扱われ混同しても通ってしまう
win32ではnearがないので普通の32ビットポインタになってしまいメモリがちょっともったいない

1015:デフォルトの名無しさん
22/08/04 18:41:17.13 +TMVVsOn0.net
>>92push(保存)してpop(書き戻し)してるから結局pushしたときのデータになる
popとpushの間のややこしいとこはシカトな

1016:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 222日 6時間 29分 31秒

1017:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch