1 名前:デフォルトの名無しさん mailto:sage [2021/12/25(土) 12:11:46.61 ID:xxeaCAplM.net] !extend:checked:vvvvv:1000:512 (新スレ立ての際上記コマンドを2行書き込んでください) C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C17 www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ ※前スレ C言語なら俺に聞け 157 https://mevius.5ch.net/test/read.cgi/tech/1624846971/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
511 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:17:57.23 ID:VUKzLr9a0.net] >>501 文脈を踏まえれば >>493 が言ってるのは「関数ポインタでも (インクリメントで進む量は) 1 バイト」というのは理解できるだろ……。
512 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:26:34.47 ID:cXB/OW/Na.net] 文脈? > gcc だと sizeof(void) が 1 を返したりするんだよな。 ↓ > というか関数ポインタも1バイトになるのかw 恥の上塗りかよw
513 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:35:35.34 ID:xzGoH14A0.net] >>503 ↓これを踏まえてのsizeof(void)だろ。なんでポインタそのもののサイズが出てくるのよ。 >void *型のインクリって一体何バイト進むんだ?
514 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 22:33:22.42 ID:HihepIbQd.net] >>503 お前がな…
515 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 22:45:15.36 ID:pcmvPs1uM.net] >>503 お前よりはな
516 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 07:47:41.31 ID:PdG/XNB8a.net] スレチだったら申し訳ない とあるフリーソフトが起動しなくてdllファイルを読み込んでないのが原因っぽいんだけど VSでdumpbinを使って関数を調べた所LNK4044のエラー 〇〇.dllは無効です、無視されます との文が出るんだがこうなるともうdllに原因があるから対処しようがないってこと? ここから修復出来る方法ありますかね
517 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 11:53:43.44 ID:bslzKqYb0.net] >>507 状況によるのでその情報からだけではわからない。
518 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 14:03:00.61 ID:G19C49df0.net] ぶっ壊れではなく、OSにVCランタイムが入ってない可能性 Dependency Walker (https://www.dependencywalker.com/) で その DLL をトレースしてみて、そいつが vcランタイム 要求していないか確認する (そして古いverのVCランタイムをどうやって入手するかという話に)
519 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 14:10:31.11 ID:G19C49df0.net] >>500 C++ だと void * のインクリメントがエラーになるので C限定のお話やね
520 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 22:34:39.58 ID:CFFEhoB20.net] ガチ初心者なんやが、まず何すればいいん? HtmlとCSSだけ少し触ったことがある
521 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 22:40:25.27 ID:E1vMcGgB0.net] ガチ初心者なら、なにもC言語に手を出さなくても……
522 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 22:52:35.00 ID:yp09HIZB0.net] 何が目標なのかを書いてみて
523 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 05:23:54.79 ID:UJCwwVidd.net] >>510 それgcc限定のお話だな
524 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 07:44:23.05 ID:KBg+aMKFd.net] >>511 こういうよくある質問 何答えればいい?ってなるよな
525 名前:デフォルトの名無しさん (スプッッ Sddb-f+Gq) mailto:sage [2022/05/19(木) 09:14:35 ID:TZT0OIWkd.net] へてむるとCSSてことは、関心事はネットかな?
526 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 12:14:13.87 ID:kqStXWIg0.net] >>511 世の中は流動的で、何が正解なのかは後にならないとわからない。 正解の道筋があるわけではなく、たくさんの知識があればどれかが役立つこともあるってだけ。 最初は物量だ。 詰め込め。
527 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 18:09:46.73 ID:KBg+aMKFd.net] こういう奴はめんどうくさいことが嫌いで とにかく近道が行きたくて聞いてるので 目的地なんて知らんとにかく近道教えろ!ってことなので 教えようがないんよ
528 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 00:03:31.03 ID:SEOso9Vd0.net] すみません、visual studio communityを使っています 関数は呼び出すより前に定義の必要があることが分かりました ですがソースファイル(.c)を分けて、一方に関数を定義すると定義する順番を気にせず使えます インクルードが必要だと思いますが、インクルードせずに関数を呼び出せます 何故でしょうか?
529 名前:デフォルトの名無しさん (ワッチョイ eb69-yvGd) mailto:sage [2022/05/20(金) 00:55:01 ID:tfeu1OX00.net] >>519 > 関数は呼び出すより前に定義の必要があることが分かりました いいえ、宣言しておけば定義は後でもいいです > インクルードが必要だと思いますが、インクルードせずに関数を呼び出せます しなくてもできるってことは必要じゃないってことです
530 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 01:27:17.95 ID:1uCl4yv30.net] >>519 #include等の先頭に#が付いたやつはCコンパイラに処理を引き渡す前にソースのテキストに対して行われる編集を指示するものだ。 つまり #include で何かファイルが指定されていたらそのファイルを読んできてその行に挿入する。そしてそれからコンパイルが行われる。 なので #include で指定するファイルの内容を直接そこに書いてしまっても結果は同じになる。
531 名前:デフォルトの名無しさん (ワッチョイ efd2-ydBh) [2022/05/20(金) 03:28:01 ID:QfqNLeQw0.net] >>519 C言語では関数宣言がなくても関数っぽく使われてるものがあったら int func(); の宣言があるものとして決め打ちする。 .hとかで前方宣言してなくてもコンパイルは通る。 利用側の.cでは引数の数と型と返り値型が分からんが、合ってれば問題なく使える。 間違ってた使い方をしたときにエラーを出せないから極力避けるべき(コンパイラによっては出るかもしれんが) この仕様はエラーを見つける観点からすればクソなので、長い歴史があるC言語以外では採用されてないはず
532 名前:はちみつ餃子 mailto:sage [2022/05/20(金) 05:08:48.27 ID:YhZHNcJW0.net] 暗黙の関数宣言は仕様から削除されてるよ。 C99 の時点でもう項目がない。 互換性の都合で出来るようにしてある処理系も多いと思うけど 警告くらいは出てるはずだと思うんで読み飛ばさずにしっかり見て欲しいな。
533 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 06:35:34.02 ID:QdnN/13A0.net] まあわかるんだけど K&R Cの楽しさがどんどん消えていく寂しさが・・・
534 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 08:04:15.92 ID:px60Na0ad.net] みんな>>519 の意味がよくわかるな というかこれらの解答であってるの?
535 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 08:18:47.95 ID:xUD6u/k80.net] 昔大学の授業で使ったTurbo Cで printf()等がincludeせずに使えた。 warningぐらいは出てたかも。
536 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 09:35:03.59 ID:qCLhnuk6r.net] 警告出てもコンパイル通ることあるよね 大学のシステムプログラミングの授業の教科書のサンプルコード、インクルード不足で警告よく吐いてた
537 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 10:00:52.44 ID:px60Na0ad.net] どんなコードでもラベルがどこかで定義されてる限りコンパイル・リンクはできるんだよ 実行時に望みの結果にならなかったり最悪保護エラーになったりするだけ
538 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 10:12:25.64 ID:mW5NTdIj0.net] コンパイルエラー・リンクエラーになるコードなんていくらでもあるだろ何言ってんだ。
539 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 10:15:14.87 ID:px60Na0ad.net] ほら変なのが絡んできたw
540 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 12:57:31.73 ID:xUD6u/k80.net] 動的リンクってやつかな? C言語はDOS時代に独学でやってたんで(大学はコードの書き方しか教えてくれんかった)どうしても 「宣言だけしておけばコンパイルは通るけど、リンク時に実態が無いとエラーになる」 ってイメージが。
541 名前:はちみつ餃子 mailto:sage [2022/05/20(金) 14:41:08.78 ID:YhZHNcJW0.net] >>531 無関係。 動的リンクは実行時にリンクする (いわゆる DLL とか so とか) 仕組みで、ホスト環境側の機能。 暗黙の関数宣言は暗黙に宣言する言語機能。
542 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 16:18:15.28 ID:px60Na0ad.net] ごちゃごちゃしてきたな >>519 に戻って「プロトタイプ宣言しなくても参照できるのは何故か」と言えば 古典的Cでは関数名は単純にfunc()→_funcというアセンブラシンボルに変換してるだけなので 別のソースでも同じ名前で定義してさえいればリンクは通る ただCでは引数をスタックに積んで呼び出すので引数の数や順番が関数と呼び出し側で統一されてないと引数を正しく処理できないので見つけにくいエラーを起こしたり最悪スタック上の戻りアドレスを書き換えてしまって停止する だからインクルードファイルでプロトタイプ宣言して統一しようということ C++では[関数名_引数の数や種類]というアセンブラシンボルに変換するので、正しい引数で呼び出さないとリンク時に見つからないと言われる それ以前にプロトタイプが必須になってるけど
543 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 01:22:00.94 ID:gs0SnL//M.net] 519です 遅くなってすみません 皆さんありがとうございました まず、宣言と定義の違いを理解していませんでした 同一プロジェクト中の別ソースにある関数を、宣言しないで呼び出せるのが何故か知りたいです 戻り値がint型だと暗黙の宣言で使えるようですが、戻り値がchar型の関数を呼び出せます 関数を呼び出すより前に宣言されているはずなので、先に関数を記述したソースが解析されているということ?? 試しにその関数をmain関数の後に持ってくると当然コンパイルエラーになります 恐らく>>533 に頂いた回答が近いと思うのですが、リンクを理解していないためか理解できません… 勉強不足で質問するのも申し訳ないのですが、ご回答いただけると嬉しいです
544 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 01:31:16.14 ID:Q47fXgzra.net] 呼び出せないと思ったほうが良い
545 名前:はちみつ餃子 mailto:sage [2022/05/25(水) 01:35:46.79 ID:9QZiEKx+0.net] >>534 コンパイラは宣言の辻褄が合っていると「仮定して」処理する。 宣言の辻褄が合うようにするのはプログラマの責任。 辻褄が合ってないときにどうなるかは言語仕様上は未定義のなのでなんとなく動いているように見えてもあてにならない。
546 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 09:42:18.14 ID:mSxNHOMI0.net] C言語に慣れない頃はmain関数はファイルの最後に書いて、 呼び出される順番にソースの上の方に関数追加していったわ。 -----ccc.c----- int FuncB(){ return 1; } int FuncA(){ return FuncB(); } int main() { return FuncA(); }
547 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 10:12:31.53 ID:dvdfNrTHa.net] >>537 呼び出しじゃなくて依存の順序で書くね 宣言はなるべく書かない!
548 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 10:18:58.73 ID:aeVycjmX0.net] 間接再帰ができない間だけ通用する
549 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 11:11:34.92 ID:f6RSTkPjd.net] >>537 簡単なプログラムで急いで書いてる場合や 関数の仕様を手探りで作りながら書いてる状態ならそんなでもいい ただFuncBからもFuncAを呼び出すようになった場合困るから
550 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 11:27:04.22 ID:f6RSTkPjd.net] >>534 何を悩んでるのかよくわからないが 今のCPUは8ビットレジスタなんて持ってないので戻り値がintでもcharでも戻り値の入ってるレジスタは同じになる だから戻り値charの関数を暗黙のint関数として呼び出しても結果は特に問題なく使えるはず ただ8ビットより上のビットにゴミ(不定値)が入ってる可能性はある
551 名前:はちみつ餃子 mailto:sage [2022/05/25(水) 11:49:22.28 ID:9QZiEKx+0.net] >>541 (現代の一般的な) 呼び出し規約的には区別がないので動的リンクだと割と問題なさそうだが、 最適化が絡むと何がどうなるか想像もつかない。
552 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 11:52:13.52 ID:aeVycjmX0.net] やはりCを上っ面でなく根っこから理解するにはアセンブラの知識も必要だな
553 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 12:06:51.94 ID:mSxNHOMI0.net] コンパイラやアセンブラのnパス(ソースを読み下す回数)って仕様を思い出した。 DOS時代にアセンブラは2パスでCコンパイラは1パスが普通だと聞いて、 Cで先に関数/変数を宣言、定義しないとエラーになるのは1パスでコンパイラが知らない関数/変数が出てくるからだと思ってた。 正しい理解かは知らない。ラベルとかはgotoの後に出てくることもあるし。
554 名前:はちみつ餃子 mailto:sage [2022/05/25(水) 13:02:50.97 ID:9QZiEKx+0.net] >>544 バックパッチで処理できるのでコードの頭から読みなおす必要はないよ。 知らない名前が出てきたときに型かもしれないし変数かもしれないってのでは構文解析が難しくなるが goto の後ろにくるのはどこかで定義されているラベルだと決め打ちできるから単純な処理でいける。 (gcc だとアドレス (を生成する式) を goto に与えることも出来るように拡張されてるからもうちょっと複雑なことをしてると思う。)
555 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 16:04:37.76 ID:ppEY2jmgd.net] gccはプロセス置換なんかで生成した一時ファィルを食わせられないから、少なくとも2回以上はソース通読してると思われる
556 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 19:05:44.16 ID:pzbMw6fx0.net] 関数コメントを書く場所だけど、 ➀ヘッダファイルの関数プロトタイプ宣言の頭に関数仕様コメントを書く ②Cファイルの関数実装本体の頭に関数仕様コメントを書く ③両方に同じ内容を書く のどれが今の多数派? 昔は②が多かった印象だけど最近は➀が主流なのかな?
557 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 19:22:25.67 ID:6XrkLlxn0.net] 外部仕様ならユーザーに読ませるからヘッダだし、内部仕様なら逆に見せるべきでないから本体、とかだろ。
558 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 07:54:06.06 ID:BbTLBX4q0.net] 将来Libファイル化とか考えると①の方が合理的かなとは思う。 VisualStudioの関数参照で、自動でコメントも表示されたと思ったけど、 そのときは①と②どっちが優先だったのかな?
559 名前:デフォルトの名無しさん [2022/05/27(金) 16:12:39.64 ID:01BAkppM0.net] 質問失礼します あるCのプロジェクトを見ていて typedef struct X X; struct X { ... some fields ... }; って記述がソース中の随所で見受けられますが、これ以前にもstruct Xの宣言がないのにtypedefできるのが非直感的に感じられます。これはtypedefを宣言するのと同時に、初めてここでstruct Xも宣言しているってことなのでしょうか?
560 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 17:20:28.72 ID:HNJHF6TRd.net] それは構造体メンバーの中にその構造体自身へのポインタを含めさせるためのトリックじゃなかったかな struct HOGE{ 色々なメンバー… struct HOGE *next; }; とやろうとするとHOGEの定義はまだ終わってないのでundefinedエラーになる typedef struct HOGE STRUCT_HOGE; struct HOGE{ 色々なメンバー… STRUCT_HOGE *next; }; これなら通るはず(?)
561 名前:デフォルトの名無しさん [2022/05/27(金) 17:23:59.27 ID:Dxs4BKy40.net] え?それ大丈夫じゃなかったっけ?
562 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 17:32:35.88 ID:Dxs4BKy40.net] struct でメンバの定義がない不完全型はポインタ変数のみ宣言出来るので再帰的なやつも大丈夫だ。 ポインタはサイズが分かるから。 ポインタでない普通の変数はサイズが分からないので作れない。
563 名前:はちみつ餃子 mailto:sage [2022/05/27(金) 17:59:48.73 ID:/qASUmj+0.net] >>550 その場合の typedef struct X X; の struct X は C99 の 6.7.2.3 にある 「不完全構造体型又は不完全共用体型を宣言し,その型のタグとして識別子を宣言する」 に該当する。 つまり struct X の宣言にもなっているという解釈で正しい。 あえて typedef を先に書く必然性はないんだが…… 仕様にはこういう形でも書けるという例が載っているので考えなしに真似してるだけかもしれん。
564 名前:デフォルトの名無しさん [2022/05/27(金) 18:06:40.28 ID:01BAkppM0.net] >>554 詳しい説明ありがとうございました 確かによくよく考えると typedef struct X { ... some fields ... } X; と同じでしたね こちらは違和感ないんですけど確かにこちらもいきなりtypedefのdeclspec内でstruct X { ... some fields ... }初めて使ってますね
565 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 20:53:33.56 ID:v5HQQ34i0.net] struct Y; struct X { struct Y* next; }; struct Y は struct X と同じでした
566 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 22:59:30.30 ID:Uk6q3si00.net] エアプ使いばかり
567 名前:デフォルトの名無しさん [2022/05/28(土) 11:23:05.30 ID:81XaDMLN0.net] typedef struct X { struct X *hage; char a[0]; } X; これはokだが typedef struct X { X *hage; char a[0]; } X; これはだめやろ
568 名前:デフォルトの名無しさん (アウアウウー Sac5-MppQ) mailto:sage [2022/05/28(土) 13:26:19 ID:CfHVy9pGa.net] よくてもよさそうだけどなあ
569 名前:はちみつ餃子 mailto:sage [2022/05/28(土) 15:18:56.42 ID:IqCM7SI40.net] C++ ではアリだが、それはそれとして配列の大きさは 0 は駄目だよ。
570 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 18:03:45.61 ID:2wkU6YYXa.net] 配列要素0個はgccの拡張やね、標準規格に取り込んで欲しいわ
571 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 18:11:56.00 ID:I3uIL+k90.net] いっそのこと要素数指定無しの配列も認めて欲しい
572 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 18:22:29.20 ID:GsM4WAAy0.net] >>562 それはポインタと何が違うのん? もしかして自動reallocとか?
573 名前:ハノン mailto:sage [2022/05/28(土) 18:26:01.93 ID:HcUv+NxjH.net] >>560-561 C99 ではすでに取り入れられた可変長構造体ですが、C++ ではまだなんですかね? www.kouno.jp/home/c_faq/c2.html#6
574 名前:デフォルトの名無しさん (ワッチョイ d901-2OYr) [2022/05/28(土) 18:53:41 ID:6Sv+ENTH0.net] NFTゲームでのユーザー活動が20倍増加 DappRadarレポート 分散型アプリデータ企業DappRadarは20日、Blockchain Game Alliance(BGA)と共同で、 ブロックチェーンゲームについてのレポートを発表。2022年第1四半期(1−3月期)は、 前年同期と比べて、ユーザーの活動が2,000%増加したという。その他、様々な角度 からデータを報告した。 ブロックチェーン/NFTゲームへの第1四半期の投資総額は、約3,200億円(25億ドル)に 到達した。レポートは、もしこのペースが維持されれば、2022年全体の投資額は約1.3兆 円(100億ドル)に達する可能性もあると予測している。なお、2021年の年間投資総額は 約5,100億円(40億ドル)であった。 レポートによると、22年1Qの全ブロックチェーンアクティビティのうち、分散型ゲームアプリ ケーションによるものが半分以上(52%)を占めていたという。ゲームをプレイすることで お金を稼ぐことが出来る「Play-to-Earn(P2E)」のゲームもこれを牽引している。
575 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 19:27:23.65 ID:72vE6z5l0.net] >>564 VLAはC++ではいらない子
576 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 20:00:35.42 ID:VWmT0B4pa.net] >>564 だからそこで[1]を指定しないとならないのがダメダメって話 namestr[100]を確保するコード書いてみ
577 名前:デフォルトの名無しさん [2022/05/28(土) 20:00:39.40 ID:TcgqTRp90.net] >>565 NFTはゲームに絡んでいる部分だけは面白そう
578 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 20:13:20.50 ID:q7Q7UvgS0.net] struct Header { int total_size; char naemestr[1]; }; 本質的には int total_size + naemestr可変としたいが sizeof(struct Header) は char naemestr[1]; を含むのでキモいことになる
579 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-yO3c) mailto:sage [2022/05/28(土) 20:21:20 ID:IqCM7SI40.net] >>567 >>569 二個以上のメンバからなる構造体である場合に最後の要素は不完全型であることが許される。 つまり char a[]; と書く分には OK だし、 sizoef で構造体の大きさを調べたときにはこのメンバを抜いた大きさが返ってくる。 だけど、規格を総合的に解釈すると (動的に) 割り当てる大きさが 0 であってはならないと思う。 >>564 C11 以降だと VLA はオプショナルだぞ。
580 名前:ハノン mailto:sage [2022/05/28(土) 20:46:38.14 ID:HcUv+NxjH.net] >>566 VLA は可変長配列の話、>>564 は可変長構造体の話、全然違うし可変長構造体は C99 で是認されましたよ ちょっと遅れているんじゃないですか?
581 名前:ハノン mailto:sage [2022/05/28(土) 20:47:26.50 ID:HcUv+NxjH.net] >>567 [1]だろうと[0] だろうとどうでもよくて、問題は可変長構造体がC++では認められているか否かの話なのでは?
582 名前:ハノン mailto:sage [2022/05/28(土) 20:48:11.40 ID:HcUv+NxjH.net] >>570 >>571
583 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:12:45.84 ID:CfHVy9pGa.net] 動的に変わらんのに可変長っていうの違和感あるわ
584 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:12:59.17 ID:q7Q7UvgS0.net] >>570 最後の要素が 不完全型な some-type [ ] に限り sizeof は そのメンバを含まない大きさを返すけど some-type [1] の場合にはそのメンバを含んじゃう https://ideone.com/7GmZkR
585 名前:はちみつ餃子 mailto:sage [2022/05/28(土) 21:34:55.35 ID:IqCM7SI40.net] >>575 「よりよい方法があるのであえて 1 を書く必要はないじゃろ」というのが主旨。
586 名前:デフォルトの名無しさん (ワッチョイ 4101-VwMx) mailto:sage [2022/05/28(土) 22:06:06 ID:q7Q7UvgS0.net] 了解
587 名前:ハノン mailto:sage [2022/05/28(土) 22:46:10.65 ID:Fu9mRLk6H.net] >>574 確かに、静的可変長とかいい言葉はありませんかね でも存在自体は昔から知られていましたよ www.kouno.jp/home/c_faq/c2.html#6
588 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 00:52:18.99 ID:TsbfhcxCd.net] まあキモいけどサイズが実際より大きすぎるぶんには問題は起きない
589 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 01:10:06.53 ID:9R680m3FH.net] >>579 キモい?アセンブラでは普通にやりますよ‥‥
590 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 01:18:23.26 ID:J7SFw8MM0.net] そうだね、アセンブラを使えば良い
591 名前:デフォルトの名無しさん (ワッチョイ 9379-3jko) mailto:sage [2022/05/29(日) 02:00:28 ID:MBI5r2Hn0.net] 最後が可変の構造体はchar naemestr[1]; なんて定義せずに #definne Header_getNaemestr(p) (char *)((struct Header*)(p) + 1) みたいに書く方法もあるよ
592 名前:デフォルトの名無しさん (ワッチョイ abae-11kL) mailto:sage [2022/05/29(日) 05:45:19 ID:7E0AvYTo0.net] >>571 配列と構造体を間違えたのは悪かったが なんで遅れてるって話になるんだ?
593 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-yO3c) mailto:sage [2022/05/29(日) 08:46:06 ID:+aZOCBrD0.net] C++ の提案としては出てる。 https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1039r0.html 今のところ C++ に取り入れられる見込みはない模様。 C で実績があるわけだし、変な矛盾はないと思うんだが 仕様として整合性をとるのは別の大変さがあるんかね?
594 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 12:15:20.33 ID:IcJAaUL30.net] ビットマップのカラーテーブル部 データフォーマットの中間部分に鎮座してる可変
595 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 12:46:49.46 ID:vh7xwuy0a.net] データ部の位置が変なリンクリスト嫌いだわ
596 名前:デフォルトの名無しさん (ワッチョイ 2b63-yO3c) mailto:sage [2022/05/29(日) 12:59:38 ID:J7SFw8MM0.net] XEvent にはとてもお世話になりました 今は使う機会が無くなりましたが
597 名前:デフォルトの名無しさん (ブーイモ MM4b-/szq) mailto:sage [2022/05/29(日) 13:00:08 ID:lS+LcIfWM.net] リンクリストでlist_head使ってないってこと?
598 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 13:33:49.79 ID:9R680m3FH.net] >>583 遅れてるからですよ、C89 から話題になっていたことを理解していないからそんな間違いをするのです‥‥
599 名前:デフォルトの名無しさん mailto:sage [2022/05/31(火) 11:53:16.64 ID:B+MkXCVE0.net] >>589 C89から話題って何のことだ? 理解してるかどうかどうやって確認したんだ? ああ、しどろもどろってやつかw
600 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 11:41:44.19 ID:+HI81M8pd.net] >>546 そういえば愛用のtccはストリームからも読み込めるけど まあ全部内部バッファに溜めればワンパスに見えるし、結局のところはわからんぬ すくなくとも論理的に2パスする必要のある言語仕様的は思い浮かばない
601 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 16:22:13.14 ID:UJNXiTT3d.net] プリプロセッサで一度マクロ
602 名前:展開してからコンパイラに渡してるから2パスと言えなくもない [] [ここ壊れてます]
603 名前:ハノン mailto:sage [2022/06/01(水) 21:59:27.44 ID:8/80xBhO0.net] >>592 プリプロはパスに勘定しません pascal こそ最高の正義、でも pascal 以降、おしなべてすべての言語は堕落してしまいましたね‥‥
604 名前:デフォルトの名無しさん (ワッチョイ 09ad-dhW+) mailto:sage [2022/06/01(水) 23:11:11 ID:vvQTEkHX0.net] pascalってキラーアプリとかあったっけ
605 名前:デフォルトの名無しさん (ワッチョイ 2b63-yO3c) mailto:sage [2022/06/01(水) 23:13:36 ID:f45OwcOU0.net] Janeなんたらは有名かもだが、他は知らない
606 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 05:56:20.78 ID:mFaN5Fu80.net] Cはpascalへのアンチテーゼでもある
607 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 06:19:33.58 ID:My4Fa6/ja.net] >>594 TeX
608 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 18:56:01.53 ID:5oSm2G9pd.net] >>593 アセンブラ以外のすべての言語は退廃と怠惰の産物と心得よ
609 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 19:27:29.17 ID:M0/peWx+0.net] 怠惰は美徳なり
610 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 20:43:06.06 ID:9S2EfN690.net] プログラマー三大美徳 怠惰、短気、傲慢
611 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 06:04:19.89 ID:2JsQlaOH0.net] 傲慢か 既存のコード無視して上書き的なメンテするやつか?
612 名前:デフォルトの名無しさん (ワッチョイ abae-11kL) mailto:sage [2022/06/03(金) 06:39:00 ID:2JsQlaOH0.net] >>598 コーディングシート使って機械語を直打ちしてた俺に言わせると アセンブラも贅沢品だぞ
613 名前:デフォルトの名無しさん (ワッチョイ 5110-yO3c) mailto:sage [2022/06/03(金) 07:54:41 ID:nRSHAlo70.net] DOS時代にコプロセッサとか言うのあったけど、実際に使われてたの? 解説書を見ること無くWin時代に入っちゃって。
614 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 08:05:52.15 ID:4GI8EAsla.net] FPUはあるとないで全然違ったよ
615 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 08:08:00.81 ID:AsLopwGrM.net] 今でもARMのFPUとかいろいろ使われてるよ
616 名前:はちみつ餃子 mailto:sage [2022/06/03(金) 09:38:08.46 ID:ysQR9TY90.net] >>592 Tiny C Compiler はプリプロセスも含めてワンパスで処理するよ。 処理が各段階に分離されてないのでコンパイラのソースコードが読みづらいらしい。
617 名前:はちみつ餃子 mailto:sage [2022/06/03(金) 10:19:43.88 ID:ysQR9TY90.net] GPU もある種のコプロセッサと言えなくもない。 そういう分類の仕方はあまりしないが……。
618 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 13:47:50.04 ID:jxOrvhuY0.net] 当時、コプロセッサを「子プロセッサ」だと思ってたのを思い出す。
619 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 19:52:40.79 ID:tmTTQ0Rod.net] >>603 486から標準でCPUに組み込まれて 今では自動的に使われていることになる
620 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 19:59:24.89 ID:jmq+XGTN0.net] PentiumのFPUバグ…
621 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 20:14:45.52 ID:sSA68QUoa.net] 487とは
622 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 20:48:03.52 ID:LlSBEtTM0.net] かつてのARMはFPUどころかMMU、Cacheまでコプロ命令で制御してたな。
623 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 20:53:33.97 ID:/AcAT3MUa.net] >>611 487は468SX(486DXの浮動小数点ユニット無し版)用のコプロやね 実態は486DXで装着すると468SXを乗っ取って全部487で実行しちゃうからCo-って感じじゃないけど
624 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 02:34:40.58 ID:YsWbAm+I0.net] 『コプロ』なるLSIを追加すると、掛け算を割り算が使えるようになる。 8~16ビット全盛時代、その文句の意味が分からなかったなあ。 BASICで普通に四則演算していたから。
625 名前:デフォルトの名無しさん (ワッチョイ c6ae-+66E) mailto:sage [2022/06/05(日) 05:54:10 ID:7J0TRviH0.net] コプロラグニー
626 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 06:54:01.45 ID:pIMmlsGTd.net] >>614 何もかも間違ってるw
627 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 07:36:26.69 ID:AvwHMxMpa.net] >>614 未だに分かってないな
628 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 07:41:32.89 ID:7J0TRviH0.net] CPUが電卓を使うというのが何ともミステリアスだった
629 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 16:32:55.98 ID:qbvku5vVd.net] **が理解できない 教えてくだちい
630 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 21:07:32.00 ID:1f/zEEFPd.net] ポインタのポインタ?
631 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 21:24:19.81 ID:7xDnzGS8M.net] 間接参照の間接参照だろ 経験豊富なら余裕で見分けられる
632 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 21:37:13.48 ID:v7exk6pA0.net] ポインタは記法が悪いよ 関数ポインタはもっと悪い
633 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 22:15:21.61 ID:uQ+SySK50.net] 宣言のときの * と、指し先の実体を求める *
634 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 23:45:42.93 ID:9jLV7J2l0.net] a***b
635 名前:デフォルトの名無しさん [2022/06/08(水) 02:10:57.84 ID:KYIfcmSY0.net] c=a/*b;
636 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 07:54:23.07 ID:CNk0rgMY0.net] int a=1; int *b=&a; int **c=&b; int d=0; d=**c; /* d == a */
637 名前:619 mailto:sage [2022/06/08(水) 08:41:18.56 ID:NWnFU//jd.net] 少しわかった気がします 試してみて理解します 皆さんありがとうございます
638 名前:デフォルトの名無しさん [2022/06/08(水) 16:31:44.77 ID:KT22GtKja.net] 関数のポインタとか 関数のポインタを引数に持つ関数のポインタとか
639 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 17:05:53.27 ID:V/Z/RpWDF.net] typedefすればいい typedef int AAA_FUNC( int, char *, ...); int AAA_caller( int, AAA_FUNC*);
640 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 11:32:24.20 ID:ZhHr/cTg0.net] >** なんで char **argv が思い浮かばなかったかなぁ・・・。
641 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 13:06:08.29 ID:0WQEetb00.net] char *argv[]という初心者をいたぶる陰険な罠を避けたかったんじゃね?
642 名前:デフォルトの名無しさん [2022/06/09(木) 15:57:22.96 ID:lMNj+E1f0.net] GNU MakeよりCMakeが優れてるのはどの辺でしょうか?
643 名前:はちみつ餃子 mailto:sage [2022/06/09(木) 16:49:53.93 ID:k8dtcEck0.net] >>632 CMake はメタビルドツールなので make と比較するようなものではない。 CMake を使う多くの場合で make も使う。
644 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 17:00:06.87 ID:lMNj+E1f0.net] >>633 そうなんですね。ありがとうございます
645 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 11:33:59.29 ID:rZTjX0hE0.net] 宣言/デリファレンスの記法が悪いというより、=が悪い 両辺を等値(あるいはそうする=代入)というセマンティクスと解離してる
646 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 11:41:37.01 ID:rZTjX0hE0.net] 初期化の=は左辺ではなく、左辺で宣言されるものを指してるわけで、頭の中で=以外の記号に置き換えて読むといいかも
647 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 13:18:43.35 ID:PT4Yy0z80.net] =と==は、はっきり区別されてるだろ 連動して常に等しいという規則ならマクロでやればいいし
648 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 13:19:17.11 ID:HL4tZsFs0.net] A=1 B=2 C=3 A=B=C PRINT A,B,C
649 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 16:02:05.50 ID:5CLHXu7x0.net] >>638 BとCが等しいかの比較結果が A に入る
650 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 22:32:37.38 ID:ExBywScCd.net] C言語ではA=B=C;でAとBにCの値が入るはずだが
651 名前:デフォルトの名無しさん (オッペケ Sr87-vhci) mailto:sage [2022/06/11(土) 02:33:23 ID:yqb/24klr.net] Cの比較は==だからね
652 名前:デフォルトの名無しさん (ワッチョイ cfae-/e9c) mailto:sage [2022/06/11(土) 04:29:30 ID:3J9oG0Sq0.net] BASICだろ
653 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 08:08:56.72 ID:5lUjqa1id.net] なんのスレ
654 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 08:27:12.87 ID:TYekU7UkM.net] C A=1, B=1, C=1 BASIC A=-1, B=1, C=1
655 名前:デフォルトの名無しさん [2022/06/11(土) 15:01:54.40 ID:s3NqXqGx0.net] ちょー初心者 引数付きの関数で引数が空のときにも意味を持たせたい nanntoka(char adress)なんて関数で 呼び出し側がnantoka()と書いたときも意味を持たせる場合どうすりゃいいの? null判定でいいんですか?
656 名前:はちみつ餃子 mailto:sage [2022/06/11(土) 15:07:25.17 ID:D3tfzU/30.net] >>645 C では出来ない。
657 名前:デフォルトの名無しさん [2022/06/11(土) 15:15:18.40 ID:s3NqXqGx0.net] だよねー やっぱ数値は工夫のしようがないから無理なのかー やー助かりました
658 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 15:45:32.03 ID:NTE9LoY80.net] C++なら出来るんだっけ。
659 名前:デフォルトの名無しさん [2022/06/11(土) 15:48:15.36 ID:nZnmEekY0.net] C++にはデフォルト引数があるし オーバーロードもできる Cでできるかは知らん int f(const char*s = nullptr);
660 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 16:27:10.38 ID:dptRvNRm0.net] 普通にはできないからやるな (1) printfみたいにやる方法 (2) __VA_ARGS__でやる方法 があるぞい
661 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 17:10:24.92 ID:t7XDMYlk0.net] >>650 printfみたいな可変引数でも第一引数は必要なので純粋に引数なしってのはできなかったはず。
662 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 17:22:53.63 ID:lqPwOW/ya.net] _Genericとかみんな使う?
663 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 17:28:25.28 ID:YjAHf+RK0.net] printf(NULL); 悪魔の召喚
664 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 05:58:21.10 ID:rhQkMiRe0.net] >>651 できるぞ 第一引数なしで可変引数にするときは void func(); と、省略記号なしで宣言する ただし言うまでもないが func(); で呼び出したときの第一引数は不定なので 使い途はない
665 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 07:27:33.25 ID:Tbig4rXQd.net] プロトタイプ省略すればなんでもできるw
666 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 08:41:18.11 ID:LzXoNMHn0.net] >>654 > nanntoka(char adress)なんて関数で って書いてあるのに...
667 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 15:51:07.84 ID:rhQkMiRe0.net] >>656 > 呼び出し側がnantoka() とも書いてあるだろ 何が言いたい?
668 名前:はちみつ餃子 mailto:sage [2022/06/12(日) 16:04:25.30 ID:7muDz8Uq0.net] >>654 > 第一引数は不定なので いいえ。 未定義動作です。
669 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 16:07:16.41 ID:LzXoNMHn0.net] >>657 勝手に端折るなよ、 書いてあるのは > 呼び出し側がnantoka()と書いたときも意味を持たせる場合どうすりゃいいの? で、答えはできない つまり >>654 > できるぞ がアホだってことな
670 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 16:17:07.73 ID:2T6Ast9Ed.net] >>654 >第一引数なしで可変引数にするときは 可変引数になってないね 全然意味のない書き込みだね…
671 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 06:48:01.95 ID:BOW2YZM80.net] >>658 不定の値にアクセスしたら未定義の動作だね 何が言いたい? >>659 幼児レベルの罵倒語が必要か? 654は正しいのか誤っているのかどっちだ? >>660 では聞くが可変引数って何だ? JIS X3010にそんな用語はないが
672 名前:デフォルトの名無しさん [2022/06/13(月) 08:40:16.72 ID:si/cekt2d.net] int func(void); と int func(...); に対する言及なしで int func(); だけ出てきてるからまともな議論じゃないと思ってスルーしてたが 可変引数は >>651 で出てきてそれに合わせてるだけじゃねーの?
673 名前:デフォルトの名無しさん (スップ Sd1f-asUV) [2022/06/13(月) 08:54:28 ID:si/cekt2d.net] int func(void); だとそもそも引数なししか受け付けない。 int func(...); だと引数の型と個数を実装側が期待するものにしなければならない。間違えたら未定義動作。 int func(); だと引数の型がわからないまま関数を使う。間違えてたら未定義動作。 int func(...); の第1引数は普通は型を明示するから int func(const char*, ...); のようになるが。
674 名前:はちみつ餃子 mailto:sage [2022/06/13(月) 09:33:56.73 ID:zy+KupId0.net] >>661 いいえ。 一致しない引数で関数を呼出そうとすることが未定義です。
675 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 10:21:00.47 ID:BOW2YZM80.net] >>664 一致しないって何と何が? funcについて仮引数は宣言されていない よって実引数との型の比較行われず 一致にも不一致にもあたらないぞ
676 名前:はちみつ餃子 mailto:sage [2022/06/13(月) 10:32:48.37 ID:zy+KupId0.net] >>665 いいえ。 どこかに関数定義は存在し、関数定義 (の仮引数) とその関数呼出し (の実引数) との矛盾 (引数の数があわない・型が適合しない) は許されていません。
677 名前:デフォルトの名無しさん [2022/06/13(月) 11:04:47.60 ID:YiPaBYDZr.net] 可変長引数では無理なのね >>650 の(2)の実装だとどうなるの
678 名前:はちみつ餃子 mailto:sage [2022/06/13(月) 11:30:06.51 ID:zy+KupId0.net] マクロでコンパウンドリテラルを作ってから (その個数と共に) 渡すという方法が取れると思う。 受け取る関数の型は >>645 の通りではできないけど。 #include <stdio.h> #define foo(...) bar(sizeof((char[]){0, __VA_ARGS__}), (char[]){0, __VA_ARGS__}) void bar(int n, char* args) { if(n==1) { printf("no argment.\n"); } else { printf("argment is %c.\n", args[1]); } } int main(void) { foo('a'); foo(); }
679 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 11:35:06.46 ID:BOW2YZM80.net] >>666 話が噛み合っていないな 引数の数も型も比べる相手がいないのに矛盾しようがない そもそも関数原型を用意しましょうなんていうのはCにおいて後付けの推奨事項に過ぎない 既存のコードを否定するのは影響が大きすぎるからな
680 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 11:47:54.04 ID:ir4nxYTVd.net] >>661 自分で「可変引数にするときは」と言っておいて なにが「そんな用語はない」だよ 頭おかしい
681 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 11:48:35.71 ID:cwJzo4Jp0.net] fn(void) fn(int) こういう2種類の引数を許容したとして 呼ばれた側はどう区別したら良いんだろう コンパイル時に、別関数にアサインしたらいいのかな その場合は受け取る関数も二つ用意してやらないと行けないな
682 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 11:52:40.59 ID:ir4nxYTVd.net] 区別はできない 引数を見ようとしたら結果は不定になる 単なるバグだよ
683 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 12:04:59.49 ID:63W4P7Hh0.net] (2)の想定はこれだった https://wandbox.org/permlink/EidRL6a8uqiszn2m これも引数0個のときは##__VA_ARGS__か__VA_OPT__が必要で まずかったな
684 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 12:13:41.38 ID:Bgq8kBxf0.net] >>669 関数定義とその呼び出しを比較するって書かれてるのに、きみが無視するから噛み合わないんだよ。
685 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 12:16:16.46 ID:BOW2YZM80.net] >>674 void func() { } /* 定義 */ int main() { func(); /* 呼び出し */ } どこが矛盾なんだ? # 迂闊な答えをすると罠があるから気をつけな
686 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 12:18:15.22 ID:BOW2YZM80.net] >>670 その時点ではアバウトな言葉遣いが容認される流れだったが 厳密さを求める流れにあんたが変えたんだよ
687 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 12:27:06.91 ID:Bgq8kBxf0.net] >>675 その例だけなら矛盾しないね。でも引数渡せないから>645のやりたかったことはできないよね。
688 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 15:54:04.85 ID:BOW2YZM80.net] >>677 引数が空のときにに意味を持たせるんだったな void func() { puts("no arguments are given"); } int main() { func(); } # さっき言った「罠」がまだここにある
689 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 16:19:19.10 ID:Bgq8kBxf0.net] まともに話す気なさそうだし、もういいや。 C言語では>>645 に書かれてるようなことはできなくて、 >>654 の「第一引数は不定」はどうせ未定義動作の間違い、 という点に異論が無ければ、これ以上語ることもない。
690 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 16:34:27.02 ID:cwJzo4Jp0.net] nantoka()と呼び出した場合、 呼び出された関数は、 nanntoka(char adress)として スタック上からadressを取り出そうとするが ここにある値はNULLではなく、不定値(所謂ゴミ) NULL判定で回避はできない
691 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 16:37:54.51 ID:ir4nxYTVd.net] >>678 Once again, once again, you're on your own Who's to blame? who's to blame? it's such a shame No-one ever hears your name, or plays your game
692 名前:デフォルトの名無しさん [2022/06/13(月) 18:45:35.75 ID:+5MOS3Faa.net] >>680 > スタック上からadressを取り出そうとするが だからそれを実行するかどうかもわからんって話 未定義動作ってそういうもんだ
693 名前:デフォルトの名無しさん [2022/06/13(月) 18:53:43.72 ID:HsopZ7m+d.net] グローバル変数 int exists_adress; を介してやれば引数あり/なし のモードを未定義動作を回避しつつ設定できそう 実用性など皆無だが
694 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:17:35.58 ID:ir4nxYTVd.net] >>682 読み出すまではできるだろ 戻りアドレスか関係ないレジスタの退避値が入っている 問題はここではエラーにならず次にこの値で何かしようとしたらクラッシュする可能性が高い これは単にコンパイラを騙して原因がわかりにくいエラーを出す方法なだけ 全くなんの意味もない
695 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:21:03.88 ID:cwJzo4Jp0.net] 分からないなら、試して見れば良いのに
696 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:40:41.59 ID:+5MOS3Faa.net] >>684 だからコンパイラは読み出すコードを吐く義務はない 未定義動作とわかった時点で呼び出しすらしないコードを吐く可能性もある 未定義動作ってそういうもんだ
697 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:46:28.66 ID:cwJzo4Jp0.net] 読み出さなければ、実行時エラーにならないだろう なんで、なるの?
698 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:48:48.04 ID:cwJzo4Jp0.net] 呼ばれた側の関数は、adressに入っている(はずの)値を使うんだぜ コード吐かなければ、それこそコンパイラのバグになるぞ
699 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:52:23.50 ID:cwJzo4Jp0.net] 実際に呼び出すコードは、呼ばれた側の関数に実装されるが、 呼び出し側の引数セットありと、引数セット無しで、 違うコードが実行されたりするのか?
700 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:03:29.40 ID:Q7R38T3J0.net] 何が起こっても不思議ではない未定義派と、コンパイラ実装は実質こうなってる派で話が噛み合うはずがないと思うの。
701 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:05:01.34 ID:cwJzo4Jp0.net] 信仰と言うより、勘違いだろう 恥ずかしくて後に引けなくなった感じ
702 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:09:56.04 ID:cwJzo4Jp0.net] 引数セットするのは、呼び出し側 コンパイラが呼び出し側で引数がないと判定した結果、 気を利かせて呼び出さないコードを吐くって一体どういうことだろう 呼ばれた側は機械的にあるはずの引数にアクセスする 呼ばれる側はセットしてないなんて分からないからアクセスしてしまうぞ
703 名前:デフォルトの名無しさん [2022/06/13(月) 20:10:29.53 ID:8KDu5nutr.net] >「罠」がある(キリッ とかお寒いこと書いちゃうくらいだしよほど視野が狭くなってたんだろうなぁ
704 名前:デフォルトの名無しさん [2022/06/13(月) 20:15:33.10 ID:iGSNe98na.net] stdcall と cdecl の話か? どっちにしても引数省略されたのかされてないのか呼ばれた方では判らん C++なら省略の代わりにデフォルト引数入れたりマングリングしたり出来るが Cではどうしようもない
705 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:17:50.97 ID:6K7aQgyCM.net] >>693 コピペで使えそうだなw
706 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 21:42:41.32 ID:PLcvpN2h0.net] >>688-689 ,691-692 コンパイルエラーとして全くコードを吐かないという事すら可能なのに何を言ってるんだよ... 今時未定義動作すら考慮して最適化したりしてる時代なんだぞw https://qiita.com/kaityo256/items/d2677e178be0180482e8
707 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 21:44:17.84 ID:ir4nxYTVd.net] >>686 何か勘違いしてないか コンパイラが未定義動作とわかったらエラーか最低でもワーニングを出す コンパイラにはわからないからバグになるんだよ
708 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:00:44.23 ID:cwJzo4Jp0.net] ワーニング笑
709 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:05:19.85 ID:cwJzo4Jp0.net] 一体どこのコンパイラがコード吐かずに停止するんだよ
710 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:14:04.47 ID:PLcvpN2h0.net] >>697 > コンパイラが未定義動作とわかったらエラーか最低でもワーニングを出す そんな義務はない > コンパイラにはわからないからバグになるんだよ 同一翻訳単位ならわかるだろ 勘違いしてるのは君、と言うか君の知識が浅すぎるだけ >>699 存在するかどうかは関係なく規格上はそう言う処理系でも規格準拠という話
711 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:42:16.41 ID:cwJzo4Jp0.net] つまり実在しないコンパイラってことだな
712 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:44:07.87 ID:cwJzo4Jp0.net] オレ以外、全員狂ってるって言ってるのと同じ
713 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:44:55.56 ID:cwJzo4Jp0.net] こいつと同じ職場でなくて良かった
714 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 23:54:32.34 ID:uF/nHRZy0.net] 法解釈論「人殺しは違法であり罰される」 実運用論「証拠を完璧に隠滅できれば罰されない」 意固地になっちゃってるから何言っても無駄
715 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 03:02:34.64 ID:bOBoFDUrM.net] 意固地になるとアスペチックになるのか アスペチックだから意固地になりやすいのか
716 名前:デフォルトの名無しさん (ワッチョイ ff01-MmlY) mailto:sage [2022/06/14(火) 06:01:33 ID:WigeF4Tr0.net] 意固地もなにも未定義動作なんて規格の話なんだから実運用論とか言われてもねw
717 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 06:16:24.48 ID:XpDhKBGs0.net] >>679 第一引数が不定とは、第一引数を何らかの方法で取り出した場合の話だが おまえさん、その方法はどんな方法を想定しているんだ?
718 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 07:36:21.84 ID:/Eif446V0.net] 自分で言った言葉に?みつく芸なんだろうか
719 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:22:14.90 ID:2fucKJss0.net] >>707 >654が言ってるのはどうせこんなのだろうと思ってた。 https://wandbox.org/permlink/aiZH8Ytc91RyQ7HL #include <stdio.h> void func(); int main() { func(); } void func(int x) { printf("%d\n", x); }
720 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:32:47.66 ID:rBU/2bdp0.net] 実体記述時と、宣言&呼び出し時とで、引数の型や個数の不一致 コンパイルが通るかもしれんけど、どう動くかわからないし 俺の環境ではこう動くからと、それを信じて採用するには怖すぎる
721 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:33:48.55 ID:XpDhKBGs0.net] >>709 654は俺でまあそんなとこだが 俺は今679に聞いている おそらく「654と同じ」とかなんとか言って 自分の手の内は隠したまま人の批判をするんだろうけどな
722 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:44:32.74 ID:2fucKJss0.net] >>711 え? 679 (ワッチョイ 835f-GGE9) だから答えたのに何でよくわからんイチャモンつけられてんの? いやまぁ、予想通りで結論に異論無いならいいんだけどさ。
723 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:50:39.67 ID:rBU/2bdp0.net] 省略時のデフォルト引数と(マングリング等による)別実装 C以前の言語でもありそうだし前者は検討してそうなもんだけど見送ったなりの理由があるんだろうか
724 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:52:59.20 ID:2fucKJss0.net] 想定が合ってたということで改めて結論も明記しとくと、 >709 のプログラムが未定義動作を起こすのは不定な x の値を使用するからではなく、 func(int x) に対して引数の数が不正な関数呼び出し func() を行うからであって、 x の値を使用しない場合(例えば関数内を空にした場合など)ても未定義動作になる、という話ね。
725 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:53:17.30 ID:XpDhKBGs0.net] >>712 ほらな、やっぱり自分の手の内は晒さない
726 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 11:13:15.99 ID:rBU/2bdp0.net] 661の立場だと void func(int x) { } ・・・・・ func(); は、記述のほうで x をリファレンスしてないからセーフで未定義には該当しないと読めるが そいう主張なのかな
727 名前:デフォルトの名無しさん [2022/06/14(火) 11:51:03.61 ID:2oEiwFQbr.net] 引っ込みつかなくなると大変だね
728 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 12:19:58.97 ID:zr4Ezotf0.net] 単に使われない変数があるってだけだと思うが
729 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 12:58:48.08 ID:WigeF4Tr0.net] >>718 >>717 ww
730 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 13:36:14.16 ID:rBU/2bdp0.net] 実装の話 関数側でスタックに詰まれた引数をクリーンアップする呼び出し規約(pascalcall や stdcall) だと 明後日に飛んでいくのか
731 名前:デフォルトの名無しさん [2022/06/14(火) 19:11:20.40 ID:DieH08Hx0.net] 引き数の値で関数内の処理を分けるか普通に関数分ければいいやん
732 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 21:11:51.49 ID:VPcVb+UNM.net] 普通の人ならそうするが、 普通で無い方法が無いかを いろいろ議論している 暇つぶしとも言う
733 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 21:17:41.30 ID:XpDhKBGs0.net] 特定されない限りあらゆるケースを想定するからな
734 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 23:50:32.80 ID:dnqAP5Hg0.net] >>718 DLLの呼び出しみたいに呼び出し先の実装をコンパイラが知らない場合 例えば引数をスタックに積む呼び出し規約だと ↓正常な動作 1)戻り先のアドレスをスタックに積む 2)引数をスタックに積む 3)DLL側のコード実行時にpopしてスタックから引数ゲット 4)いろいろ処理してpopして戻り先アドレスをゲットしてりたーん これが↓異常な動作 1)戻り先のアドレスをスタックに積む 2)なんもない 3)DLL側のコード実行時にpopしてスタックから引数ゲット 4)いろいろ処理してpopして戻り先アドレスをゲットしてりたーん 5)わし、迷子 ってなるんちゃうん? 引数がレジスタ渡しなら、ただ変な数値受け取るだけで済むけど、今ここでの話じゃ限定してないようだし
735 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 00:28:34.16 ID:kIvvyTdz0.net] 呼び出しって引数をスタックに積んでから、呼び出すんじゃなかったかな
736 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 00:38:49.11 ID:3+VQJWvy0.net] >>725 そうだよ だから func(int);な関数をfunc(void); で呼び出したらスタックにずれが生じる可能性がある
737 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 00:43:20.78 ID:kIvvyTdz0.net] 引数をスタックに積んでから、戻りアドレスを積んでCallするなら、 func関数はスタック先頭位置にあるアドレスに戻るだけではないかな 積まれている引数はその下だからズレないと思う
738 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 00:57:26.32 ID:3+VQJWvy0.net] >>727 >引数をスタックに積んでから、戻りアドレスを積んでCallするなら、 逆だぞ 戻りアドレスをスタックに積んでから引数をスタックに積む、その状態でfuncをコールする そうしないと、次のpopでは戻りアドレスを受け取ることになり、引数を受け取れない コールされ
739 名前:たfuncはpopし引数を受け取って処理(この間にスタックへのpush/popがあったりして)、最後にpopして戻りアドレスを受け取って呼び出し元に帰る [] [ここ壊れてます]
740 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 01:08:25.20 ID:kIvvyTdz0.net] 戻りアドレスをスタックに積むのは、機械語のCALL命令が行うんでしょう?
741 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 01:16:07.05 ID:kIvvyTdz0.net] VCでアセンブラソース出力させてみました int main() { call(1); call(); return 0; } int call() { return 0; }
742 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 01:17:50.09 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 01:18:18.33 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 01:22:13.35 ID:3+VQJWvy0.net] そうでした うんこは消えます
745 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 05:01:22.73 ID:oeHjaPLHa.net] フレームポインタってのもあって まあなんでもいいんです
746 名前:デフォルトの名無しさん [2022/06/15(水) 15:38:51.27 ID:IEWflW3Ga.net] >>728 馬鹿発見
747 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:22:38.94 ID:mSaBC5As0.net] >729 全てのCPUにCALL相当の命令があるとは限らないってことを頭の片隅に。
748 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:14:29.02 ID:kIvvyTdz0.net] CALL命令のないCPUにCってどういう風に実装するのかな キッと神様のような人だろうと思う
749 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:34:49.70 ID:vqdnmmaIa.net] 最近call見ないよね 命令はあるけど
750 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:53:29.20 ID:XKwaNEU7
] [ここ壊れてます]
751 名前:0.net mailto: >>736 C言語で書いたコードが実行できるようなCPUでCALL相当の命令がない奴なんてあるのか? まさかと思うけどBSR(Branch SubRoutin)とかBAS(Branch and Save)はCALLと綴りが違うんだーっていう主張じゃないよね [] [ここ壊れてます]
752 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:55:51.69 ID:XKwaNEU70.net] >>737 汎用機みたいにスタックが無いマシンだとソフトでスタック作るとかする
753 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 20:05:59.02 ID:kIvvyTdz0.net] 呼出も戻りも、ジャンプ命令で実装するんかい? 「食らえ、GOTO攻撃!」
754 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 20:06:30.10 ID:gppE9X5h0.net] >>737 厳密じゃないけど、 push pc jmp xxxx : pop pc みたいな。push pcする時にjmpのアドレスの次を
755 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 20:07:41.69 ID:gppE9X5h0.net] 途中で書き込んてしまった。 >>737 厳密じゃないけど、 push pc jmp xxxx : pop pc みたいな。push pcする時にjmpの次のアドレスをpushする必要があるけど。
756 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 20:29:16.05 ID:mSaBC5As0.net] >739 2000年あたりのスパコンのデバッグやってたけどスタックポインタ自体無かったよ。 汎用レジスタの一つをスタックポインタの様に使ってた。 スパコンのPEはCPUじゃ無いっていうならそれまでだけど。 OSがCで書かれてたよ。
757 名前:はちみつ餃子 mailto:sage [2022/06/15(水) 20:38:36.75 ID:VY0KZJ3n0.net] 専用のレジスタを用意するかわりにアドレシングモードを充実させてるタイプの CPU もあるとは聞いたことは有る。 複数のスタックを用途別に使ったりする運用も出来るので便利っぽいよ。
758 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 20:42:40.26 ID:Z7kfo4VR0.net] リンクレジスタを使うアーキテクチャは 呼び出しも戻りもジャンブだよ
759 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 21:27:21.82 ID:XKwaNEU70.net] >>744 だから>>740 に書いたように汎用機みたいにハードウェアスタックが無いプロセッサーは普通にあるよ でもBASみたいにサブルーチンを呼び出す命令はある(戻りアドレスをレジスタに格納してジャンプする) スパコンの命令セットは見たことないけど似たような命令はあると思う
760 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 21:32:09.09 ID:mSaBC5As0.net] JMPで呼び出した関数に飛んで、 JMPで呼び出し元に戻って行ってたよ。 RET、それ相当の命令が無かった(使われてなかった?)。
761 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 21:47:48.01 ID:vqdnmmaIa.net] ぴゅう太のCPUとか全然レジスタなかった
762 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 21:51:15.67 ID:XKwaNEU70.net] >>748 どこのスパコン?
763 名前:デフォルトの名無しさん [2022/06/15(水) 21:56:54.74 ID:Ltc382Vw0.net] Z8スーパーコンピュータ
764 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 21:58:58.10 ID:XKwaNEU70.net] >>749 あれはレジスタはメモリー上に置くって言う設計思想だから
765 名前:デフォルトの名無しさん (ワッチョイ 7f36-GGE9) mailto:sage [2022/06/15(水) 22:55:33 ID:mSaBC5As0.net] >750 富士通。 実機は見たこと無い。 なんかアメリカに設置されてて、日本の端末(FMVにFreeBSDかなんか入れてた)からtelnetで入って作業してた。 入社1年目だったんでテスト作業員+フリーズした場所の特定と原因予想してた。
766 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 07:08:44.59 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 07:48:03.24 ID:acnLqVz40.net] >>753 2000年辺りならベクトルタイプのVPP シリーズの方かな スカラパラレルはUltraSPARCだし
768 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 14:04:28.10 ID:6d6damS40.net] ① struct _Hoge; ② typedef struct _Hoge Hoge; ③ struct _Hoge { int a; }; ④ typedef struct _Hoge { int a; } Hoge; ↑の①~④はどれが「定義」でどれが「宣言」かよくわからんです typedef の def は define(定義)の def ですが 変数作って値を定義していないので全部宣言ですかね?
769 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 14:15:11.58 ID:ilsRfae90.net] 原則、重複が許されるのが宣言、許されないのが定義 ただし仮定義のような例外も一部ある
770 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 14:18:30.74 ID:6d6damS40.net] そうすると①は宣言ですね
771 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 14:37:35.99 ID:ilsRfae90.net] うむ
772 名前:デフォルトの名無しさん (アウアウウー Sa67-iSSN) [2022/06/16(木) 19:53:21 ID:hEUIHdUOa.net] コンパイラが単語を覚えるのが宣言 メモリに実態が産まれるのが定義
773 名前:デフォルトの名無しさん (ブーイモ MM7f-a+sK) mailto:sage [2022/06/16(木) 20:19:36 ID:2MvWGhryM.net] ③書いたところでメモリに実体生まれんだろ
774 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 22:26:58.67 ID:6d6damS40.net] ③を2回書くとエラーになりますね この辺は沼でしょうか? 厳密に分けても何かに役立つというものでもないし・・・
775 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 23:14:06.95 ID:y5qePP6X0.net] そういう風に決めたなら仕方がないが 意味的には、定義と宣言って逆な印象を受けます 数学でいうと、 点や直線の定義では実際の描画はまだですが 点や直線の宣言っていうと、その場に描画すると言うイメージ
776 名前:はちみつ餃子 mailto:sage [2022/06/16(木) 23:16:16.53 ID:yR1zGyRS0.net] 宣言と定義の意味については C99 だと 6.7 に記述がある > 宣言は、幾つかの識別子の解釈及び属性を指定する。 > 識別子の定義 (definition) とは、宣言のうち次のものをいう。 > ・ オブジェクトに対しては、そのオブジェクトの記憶域を確保する宣言 > ・ 関数に対しては、関数本体を含む宣言 > ・ 列挙定数又は型定義名に対しては、その識別子の (唯一の) 宣言 逆に言えば定義は常に宣言でもある。
777 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 05:27:18.60 ID:zopwF6/i0.net] 実体が作られるといっても プログラムイメージにスペースが確保されるとは限らない 静的記憶域期間を持つものはプログラムイメージに作られるが 自動記憶域期間を持つものは実行中に割付と解放が行われるし 構造体のメンバ宣言並びはコンパイラのメモリに作られる これらのいずれも「定義」となる
778 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 07:51:59.32 ID:bL392TY50.net] >>765 > 構造体のメンバ宣言並びはコンパイラのメモリに作られる それは > コンパイラが単語を覚えるのが宣言 の方じゃね?
779 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 08:44:28.03 ID:rAke7YJm0.net] なんとなくのイメージ ・宣言 「xxxxって名前の変数(関数)がどっかにあるらしいよ。詳しいことは知らん。」 ・定義 「xxxxの詳細はココに書かれたxxxxxである!これは決定事項である!!」
780 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 13:54:11.29 ID: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 名前:デフォルトの名無しさん [2022/06/17(金) 16:09:04.52 ID:G79h5Zera.net] >>763 誤訳
782 名前:デフォルトの名無しさん [2022/06/17(金) 16:13:44.68 ID:G79h5Zera.net] struct _Hoge { int a; }; struct _Hoge { int a; }; // NG この場合でもコンパイル単位が別ファイルだと(ほぼ)問題無い訳で 一致していなければ一致していないなりの結果が産まれる
783 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 16:33:58.20 ID:zopwF6/i0.net] >>770 (ほぼ)は不要 問題ないというか完全に同じ内容になっていない場合は未定義の動作
784 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 19:28:59.11 ID:bL392TY50.net] >>768 なにを言いたいのかさっぱりわからんw
785 名前:デフォルトの名無しさん [2022/06/18(土) 20:10:05.11 ID:cOcEcivya.net] ヘッダ include したことないとか ヘッダに実装描くとか 分割コンパイルしたことないとか そういうアホのにおいがプンプン丸
786 名前:デフォルトの名無しさん [2022/06/18(土) 23:11:41.82 ID:eg6b2Ems0.net] どこにそんな話出てた…?
787 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 15:11:40.00 ID:BalXxnr90.net] 定義と宣言の区別に関して 同一翻訳単位の中で 重複が許されるのが宣言 の実例の話やろ
788 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 20:05:57.84 ID:3bt1t/j50.net] 聞きたいのは内容じゃなくてなぜそんな話をいきなり始めたのか?なんだけどw
789 名前:デフォルトの名無しさん [2022/06/20(月) 20:11:30.62 ID:8GsqMDfwr.net] ヘッダに実装書いたっていうレスもヘッダをincludeしたことないっていうレスも見当たらないけど…
790 名前:デフォルトの名無しさん [2022/06/20(月) 20:27:07.42 ID:aPzFu0cfd.net] 別ソースから同じヘッダをincludeしていてもコンパイル時には必ず別ファイルとなるわけで(ほぼ)じゃ困る
791 名前:デフォルトの名無しさん (ワッチョイ ffad-DcGD) [2022/06/25(土) 17:14:53 ID:g21tYZQo0.net] if ( a == 0 ) { port &= 0b11011111 ; } else { port |= 0b00100000 ; } これ条件文使わずに書けるよね?
792 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 17:41:40.76 ID:ZgY7VkDz0.net] >>779 三項演算子は条件文に含みますか?
793 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 17:45:19.17 ID:zMWMLrlCM.net] 書けるかどうかより、分かりやすいかの方が大事
794 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 17:45:51.43 ID:9jpr7vFN0.net] port = port & ~((a == 0) * ~0b11011111) | (a != 0) * 0b00100000 頭悪いんでこれ以上無理。確実にレビューで落ちる
795 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 17:56:58.31 ID:9jpr7vFN0.net] 何だこれでいいのか port = port & 0b11011111 | (a != 0) << 5
796 名前:デフォルトの名無しさん [2022/06/25(土) 18:15:30.63 ID:g21tYZQo0.net] おまいらは何で素直にかけないんだ?(´・ω・`)?
797 名前:デフォルトの名無しさん [2022/06/25(土) 18:26:40.73 ID:XIyeaAEpr.net] >>779 条件分を使わない理由はないよね?
798 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 18:26:54.17 ID:9jpr7vFN0.net] まさか質問者に駄目だしされるとは思わなんだ
799 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 18:28:36.26 ID:gQjoPRQF0.net] 条件によって8ビット目以上も変える訳ではないのならば…かな &= 0b11011111 | !!a << 5や&= ~0b00100000 | !!a << 5とかも論理否定は楽な方で 後者は若干レジスタ雑に出来るが…しかし最適化するとif文も分岐排除されてほぼ変わらん
800 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 19:15:33.07 ID:ca1tbhpBH.net] 条件文使わずに書いても何もメリットない
801 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 19:35:30.93 ID:IvS/BJ7o0.net] やるならアセンブラレベルで・・・
802 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 22:45:43.97 ID:UWoTCBGr0.net] Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86 0b 使えないw
803 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 23:52:02.49 ID:PITDVbGU0.net] そりゃそうだろ C言語としてはGCCの拡張だし C++14でコンパイルしたらいけるんじゃね?
804 名前:デフォルトの名無しさん (ワッチョイ 8f10-tCSL) mailto:sage [2022/06/26(日) 09:58:04 ID:EKr6eQfX0.net] >0b 使えない 0xに変換か、どうせ定数なんだからそれっぽいマクロで代用しとけばヨロシ。
805 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 10:58:18.13 ID:hEbl3kj1a.net] orをandで記述する方法は
806 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 11:05:33.04 ID:j/Qk9Cw40.net] 負論理
807 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 11:39:10.83 ID:ImrLxjwid.net] A|B == ~( ~A & ~B ) だけどまったく意味はないな
808 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 11:50:57.28 ID:9tvF1jx30.net] ソースを難解にする
809 名前:フに多少貢献 [] [ここ壊れてます]
810 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 14:00:18.84 ID:r2JBCRM90.net] 怒(プイプイ)モルカーだな
811 名前:デフォルトの名無しさん (ワッチョイ fdbb-/dRU) mailto:sage [2022/07/09(土) 06:20:44 ID:LJ5BAcPW0.net] 今日の学び voidは1バイト
812 名前:デフォルトの名無しさん (ワッチョイ 355f-UQ1h) mailto:sage [2022/07/09(土) 11:11:08 ID:8isXQv7m0.net] >>798 たぶんgcc拡張のポインタ演算の話でしょ。他ではそんなこと言えないから気を付けて。
813 名前:デフォルトの名無しさん (ワッチョイ fdbb-/dRU) mailto:sage [2022/07/09(土) 12:16:19 ID:LJ5BAcPW0.net] >>799 GCCだけど printf("%d\n", sizeof(void)); // 1 になる。 これGCCだけなん?
814 名前:デフォルトの名無しさん (スッップ Sd43-jz6z) mailto:sage [2022/07/09(土) 12:23:26 ID:U9EmutCWd.net] https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Pointer-Arith.html
815 名前:デフォルトの名無しさん (ワッチョイ fdbb-/dRU) mailto:sage [2022/07/09(土) 12:27:53 ID:LJ5BAcPW0.net] >>801 へ~知らなかった
816 名前:デフォルトの名無しさん (ワッチョイ cb63-TkQT) mailto:sage [2022/07/09(土) 12:31:03 ID:Pcby8BG30.net] ではvoid型変数 sを宣言してみて下さい サイズを測ってご覧にいれます
817 名前:デフォルトの名無しさん (ブーイモ MMcb-bSlT) mailto:sage [2022/07/09(土) 12:37:25 ID:rCvRfQZvM.net] 糞坊主が
818 名前:デフォルトの名無しさん (ワッチョイ 8302-Fj9x) mailto:sage [2022/07/09(土) 12:39:57 ID:OQU8CgWM0.net] 屏風に描いたvoidなんつって
819 名前:デフォルトの名無しさん (ワッチョイ 23ad-jVDF) mailto:sage [2022/07/09(土) 20:15:12 ID:A5P06KhI0.net] ヘ_ヘ ミ・・ ミ ( )~
820 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 20:56:46.61 ID:2FL2bpN80.net] 他人のふんどしで勝負する男の人って‥‥
821 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 21:10:00.31 ID:eJjSZ+Lo0.net] はなししとは? ヘ_ヘ ミ・・ ミ ( )~
822 名前:デフォルトの名無しさん mailto:sage [2022/07/10(日) 01:02:53.42 ID:NKXzP1tS0.net] このスレに50代の者が居ると見た
823 名前:デフォルトの名無しさん mailto:sage [2022/07/10(日) 01:43:41.30 ID:4ppCSg1ba.net] 70までおるじゃろ
824 名前:デフォルトの名無しさん mailto:sage [2022/07/10(日) 05:01:57.35 ID:teKb0H7o0.net] ム板の寄合所かよ
825 名前:デフォルトの名無しさん mailto:sage [2022/07/10(日) 15:27:56.20 ID:EpSIEDJ/H.net] >>808 他人のふんどしで勝負する男の人って‥‥
826 名前:デフォルトの名無しさん mailto:sage [2022/07/10(日) 15:35:59.80 ID:IXzc/cv30.net] みっともねえよな そんなことまでパクリしかできねえやつ # 奴が来なくなって20年近く経ってんのに進歩してやがらねえ
827 名前:デフォルトの名無しさん mailto:sage [2022/07/10(日) 15:38:00.79 ID:pOdXKR0zH.net] >>813 ですよね
828 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 08:40:13.85 ID:2XjvtJRn0.net] voidの長さはよくわからんが、取り敢えずvoid*のインクリ幅を実装の最小単位に取っておけば何でも指せるし、そのアドレス演算に意味を持たせる事も可能になる どうしてもvoidのサイズを決めたいというのなら、まあ合理的な実装だと思う
829 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 13:22:34.96 ID:cGEUsgsp0.net] void*のインクリ幅に何か意味があるの?
830 名前:デフォルトの名無しさん (ワッチョイ e369-TkQT) mailto:sage [2022/07/11(月) 17:20:33 ID:lWPgqJ6O0.net] char*でいいじゃん なんだかわからないものは「バイト列」だろ
831 名前:デフォルトの名無しさん (ワッチョイ 7510-TkQT) mailto:sage [2022/07/11(月) 17:41:30 ID:TkfF8Lfy0.net] 警告されるから
832 名前:デフォルトの名無しさん (ワッチョイ cb63-TkQT) mailto:sage [2022/07/11(月) 17:44:52 ID:rBy2qCXb0.net] 普通は明示的キャストを介して使うよな
833 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b3e-TkQT) mailto:sage [2022/07/11(月) 17:46:10 ID:POJvWuxZ0.net] そう。 オブジェクトを指すポインタは void* との間で「暗黙に」変換することが出来る。 最終的に char* にキャストするのだとしてもインターフェイス (仮引数) が void* だとキャストをせずに済む。 memmove とかがそれ。
834 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 22:57:06.26 ID:7aXqGp3Qd.net] なんでも指せるのとインクリメント幅を1にするのは関係ない むしろインクリメントしようとしたらミスである可能性が高いのでワーニングかエラーにすべき
835 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 07:13:33.37 ID:MjEzd7ZRd.net] ハード的な最小単位へのポインタは欲しいね charって書くの本当は気持ち悪い
836 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b3e-TkQT) mailto:sage [2022/07/12(火) 10:12:07 ID:AnYAkaOT0.net] C の仕様上はアドレスを定義できる単位をバイトと呼び、 char は 1 バイトであると定義されてる。 つまり char はハードウェア的な最小単位と言えるが……、まあ名前が良くないのは確か。
837 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 12:14:37.21 ID:MjEzd7ZRd.net] つーか符号がどうたら言われたくない
838 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 17:26:10.54 ID:DhrJi4Do0.net] (char が 7bit の系って生き残ってるのかしら?)
839 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 17:42:00.57 ID:4CshQ+Jw0.net] というかなんでcharってsignedにしてあるんだろ? char と unsigned charじゃなくてchar と signed char にしてくれていればよかったのにと思わなくもない intもsignedだし(逆にintがunsignedだったら使いづらいけど)符号付の計算が基本とかあるのかね?
840 名前:デフォルトの名無しさん (ワッチョイ a5d2-WFmy) [2022/07/12(火) 17:58:33 ID:YvrX4qJi0.net] C++ではcharが符号付きか符号なしかは環境依存だよ unsigned charともsigned charとも別の型扱いされる不思議な子 たぶんC言語でも同じ扱いだろう
841 名前:デフォルトの名無しさん (ラクッペペ MMcb-KYPL) mailto:sage [2022/07/12(火) 18:06:57 ID:ydFOrexCM.net] charの符号は処理系依存と違ったっけ?
842 名前:はちみつ餃子 mailto:sage [2022/07/12(火) 18:30:46.85 ID:AnYAkaOT0.net] そう。 >>827 の説明が正しい。 char の符号は処理系定義かつ signed char とも unsigned char とも異なる独立した型。 signed char か unsigned char のどちらかと別名という可能性もないので、 C++ のオーバーロードや C の _Generic で三種類に分岐することは出来るよ。 char は整数だから他の整数型との一貫性で考えれば符号付きになるのが自然なようにも思えるが……、 実行基本文字集合は char で (char が符号有りだとしても) 正の値になることを 要求している (C99 だと 6.2.5 に書いてある) ので各環境が採用している文字コードによっては 符号無しにせざるを得なかったのだと思う。 EBCDIC とかだとどうしてもそうなる。 まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、 仕様が成立した時点でそうでない想定をしているコードが結構あったりしたんじゃないかな。
843 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 18:31:52.31 ID:xJzxH9jqa.net] >>825 規格では8bit以上だったはず www.bohyoh.com/CandCPP/FAQ/FAQ00013.html
844 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 11:20:33.14 ID:Zw91A11j0.net] >>829 >まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、 比較の際に暗黙で走る int への格上げの時にややこしくなりそうやね char ch; ... if (ch >= 0x80) // 上位ビット立ってる?
845 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 11:53:33.59 ID:CCByLcFJM.net] &buf[0] ってbufと同じだよな? なんか意味あんのこの書き方?
846 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 12:43:05.67 ID:hH7ZnQ+pM.net] &buf[0] 配列の先頭要素のアドレス buf 配列の先頭のアドレス 同じ sizeof(&buf[0]) 配列の先頭要素のサイズ sizeof(buf) 配列のサイズ 異なる 配列の要素数を求める場合 sizeof(buf)/sizeof(&buf[0]) で頻出する
847 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 12:44:54.67 ID:WjRfIVOeM.net] センキュー
848 名前:蟻人間 mailto:sage [2022/07/13(水) 12:52:57.77 ID:H8j4+v2od.net] >>833 >配列の要素数を求める場合 >sizeof(buf)/sizeof(&buf[0]) >で頻出する ダウト。sizeof(buf)/sizeof(buf[0])の間違い。
849 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a33e-TkQT) mailto:sage [2022/07/13(水) 14:23:32 ID:Kb1eM8RI0.net] >>832 配列の先頭としての意味よりその要素に意味があるということを強調した雰囲気を表すためにそういう書き方をすることはあるよ。 仕様としての解釈 (動作) に差が無い場面であっても人が読む上では雰囲気の差はある。
850 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 16:51:43.98 ID:Zw91A11j0.net] 添え字が非0 のとき &buf[1] か buf+1 添え字が0 のとき &buf[1] か buf+0 か buf か 同じコードになるけど記述に意味を見出すかどうか
851 名前:デフォルトの名無しさん [2022/07/13(水) 17:38:26.38 ID:H0DndFW/a.net] _countof使わないのか
852 名前:はちみつ餃子 mailto:sage [2022/07/14(木) 13:40:03.36 ID:m4fVu3Vb0.net] 配列の大きさを知る演算子くらい標準入りしてもよさそうなもんだとは思う。
853 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 13:46:25.72 ID:YnALXIBFd.net] ポインタに使うアフォが出てくるに1ペリカ
854 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a33e-TkQT) mailto:sage [2022/07/14(木) 14:14:28 ID:m4fVu3Vb0.net] むしろ、イディオムやマクロによる素朴な実装だとポインタを渡してもエラーなく通過してしまうからこそ 言語の機能として提供して然るべきだと思うよ。
855 名前:デフォルトの名無しさん (アウアウウー Sa09-S3zt) mailto:sage [2022/07/14(木) 14:49:53 ID:abQKMdR+a.net] 結局、配列が無いのが問題、みたいな
856 名前:デフォルトの名無しさん (ワッチョイ cb63-TkQT) mailto:sage [2022/07/14(木) 15:26:18 ID:fgF/JGu/0.net] 配列とは別に文字列型作れば良かったのかな
857 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 19:30:20.65 ID:r8EwCLZ2d.net] それを言ったら破門だよ
858 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 22:46:23.97 ID:vZ8IDyva0.net] string_t *s = str_alloc();
859 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 00:26:30.17 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 00:28:02.51 ID:1DBmbCgq0.net] test.c:23:31: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=] for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){ ^^ 問題なく動くんですが、上のような警告が出ます。 気にしなくても良いですか?
861 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 01:16:21.70 ID:RIt+yucva.net] &a[0]にでもしたらいいかもな 警告出さなきゃ出ないんじゃなかったかな
862 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 04:38:20.42 ID:tV/KWY8I0.net] 指定子の数と引数の数が合ってないのでは?
863 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 09:31:19.06 ID:5kV34GW+0.net] %s は1つで良いんじゃね?
864 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 09:48:19.50 ID:gh7Bz7cid.net] %sが多いね あと32バイト以上あったらクラッシュするけどいいの
865 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 11:10:26.64 ID:tV/KWY8I0.net] >>846 そのコードで問題なく動くならabc.csvがかなり特殊な形式だと思う https://ideone.com/haAzIG
866 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 12:37:05.79 ID:Fwel5trjd.net] 最初の%[^,]でa[]にコンマの前までが取られて 次の%sが行末までをb[]に取るから その次の%sをコピーするポインタが指定されてないので本来はここでクラッシュするけど 前の%sで行末に行ってるのでこの%sは必ず無視されるという綱渡り状態 直しておいたほうがいいよ
867 名前:847 (ワッチョイ 7db3-pN0Z) mailto:sage [2022/07/18(月) 00:57:42 ID:i3ini+Eo0.net] サンクス(´・ω・`)
868 名前:デフォルトの名無しさん [2022/07/21(木) 23:01:29.27 ID:qNAIu8qZa.net] 生徒数と科目数と点数をキーボードから入力し、それぞれの科目数の個人、全体の合計点数、(科目数の個人、全体の)平均点をそれぞれ出すプログラミングをやっているのですが、全く分からないので教えてください。
869 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 23:24:42.74 ID:25qjJOkGr.net] キーボードから入力する方法がわからないのか、平均点をだす方法がわからないのか?
870 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 23:58:01.60 ID:tQt8NkV/0.net] 多分学校の宿題かなにかなんだろうが、 言葉足らずで相当補わないと問題が分からない 出題されたまんまの内容を書いてみてくれないか
871 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 01:39:33.12 ID:fX2QhDiX0.net] 「全く分からない」に対してわかるように教えるには入門書の頭から説明しないと理解できない状態ってことだからなぁ。 それなら普通に入門書を読むべき (その上でどうしても理解できない箇所があるならそれを質問すべき) という話だし、 理解する気が無くてそういうプログラムが欲しいだけなら宿題スレに投下したほうがいい。
872 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 03:00:46.63 ID:GQs5tpkHd.net] 質問者です 僕は答えだけが欲しいんです。どうして説教なんかしてくるんですか? 貴方達は黙ってコードを書いてくれるだけでいいんです。それ以外のことを私は貴方達に求めていません ご回答よろしくお願い致します
873 名前:蟻人間 mailto:sage [2022/07/22(金) 04:01:58.51 ID:9CWw4cOJd.net] 成績を収める配列変数を宣言して下さい。 ループ変数iとforループを使ってデータ入力する処理を記述して下さい。 ループ変数iとforループを使って合計を求める処理を記述して下さい。 合計と件数より、平均値を計算して下さい。
874 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 13:35:19.04 ID:63Xcy7bk0.net] >>859 回答するから駅前でパンツ脱いで待ってろ
875 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 13:53:06.84 ID:o6RHeQNrM.net] jkの視線が辛いです…
876 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 16:50:00.97 ID:FTsytUCEd.net] 近道を教えてください 目的地?そんなもの知らん いじわるしないで近道だけ教えてくださいよ
877 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 17:05:43.46 ID:5FG7Keur0.net] だから宿題スレ逝けってば
878 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 17:48:50.97 ID:xVgLzEHZ0.net] 他人にコード書いてもらいたいならお金払うのが常識だぞ 勉強になったな
879 名前:デフォルトの名無しさん [2022/07/22(金) 18:36:47.63 ID:iW5ae+Pc0.net] >>859 別人か? 釣りか? スレを活性化させるための煽りか?
880 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 20:52:21.05 ID:6vEMzc8Xd.net] >>866 別人です 釣りです スレを活性化させるための煽りです そもそもワッチョイ見れば分かるけどキャリア違うし >>863 も同じような輩でしょ
881 名前:ハノン mailto:sage [2022/07/22(金) 21:13:42.27 ID:axiBU42YH.net] 炎上学習法がはじまりました…
882 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 22:22:56.34 ID:V/ouQpU1d.net] >>867 皮肉って概念を聞いたことあるかね
883 名前:デフォルトの名無しさん (ワッチョイ daad-Vb2/) [2022/07/22(金) 23:07:49 ID:iW5ae+Pc0.net] そういや Excel 使った方が楽にできそうな問題だな。
884 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 06:55:01.01 ID:GjOkJS/b0.net] 絶望的に適性ないやつがいるな そんな無駄なことは今すぐやめろ 限りある人生をもっと有意義なことに使え
885 名前:デフォルトの名無しさん [2022/07/23(土) 20:24:50.53 ID:xI/QpgaL0.net] たとえば?
886 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 20:54:12.53 ID:ZMU4WQ2EH.net] >>871 1.適性がない、というその適性を定義してください。 2.適性がない、となぜ判断したのか 1. をもとに詳しく記述してください 3.1.2.が出来ないのではないのならば、あなたこそ、あなたのいう適性をもちあわせていない、と私は判断します 以上
887 名前:デフォルトの名無しさん (スプッッ Sd73-ENu5) mailto:sage [2022/07/23(土) 21:02:39 ID:qM4duTiyd.net] エラーや不具合があったときに理屈じゃなくて直感ですぐに原因が思いつく
888 名前:タイプは適性があると思う 経験で補えるっちゃ補えるけど [] [ここ壊れてます]
889 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 22:07:51.06 ID:HvDaSJUkd.net] >>873 あんたの判断がどうかしたのか
890 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 22:19:32.27 ID:KvepzSxm0.net] 当社比
891 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 23:01:14.87 ID:FDsLOdQw0.net] >>874 人間の無意識領域が活発に活動している証拠ですね 最近は前野隆司氏の受動意識仮説に心惹かれます 実験心理学からは「準備運動電位」がずいぶん前に提示されていますが、今はどこまでわかっているのでしょうか? https://mevius.5ch.net/test/read.cgi/tech/1556284220/703 https://mevius.5ch.net/test/read.cgi/tech/1640401906/23
892 名前:デフォルトの名無しさん (ワッチョイ 0bae-SXL5) mailto:sage [2022/07/24(日) 06:47:50 ID:cLNfquIV0.net] >>873 どうした、頭に血が昇ってw 身に覚えがあるんだろ 別に俺が定義しようがしまいが関係ない おまえが直面している現実が全てだ コード書けねえんだろバーカw そんなん俺は厨房の頃からやってたぜ 当時はBASICすらなく機械語だった やるやつは人のせいになんかしねえんだよ
893 名前:デフォルトの名無しさん (スップ Sd33-ENu5) mailto:sage [2022/07/24(日) 07:04:34 ID:gwuc5Le4d.net] ジジイがイキってるの悲しすぎるな キャリア積んだおっさんならもうコードなんて書いてないのに
894 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 07:35:48.77 ID:kz71o77Jd.net] >>874 経験がないとそんなことは無理だな 経験によって結果から原因を推定するデータベースを増やしているに過ぎない 生まれつきプログラマになるべく生まれた人間などいないw
895 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 08:01:42.09 ID:QsSUkFLAM.net] 直感というより論理(左脳)と感性(右脳)のどちらの活性が高いかの違い
896 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 08:03:50.29 ID:bdlqmtah0.net] >>880 同じ事象に遭遇しても原因を自分でちゃんと究明して対策してる奴と人に言われて直すだけの奴だと取得する経験値がだいぶ違うだろ そういう意味での適性はあると思う
897 名前:デフォルトの名無しさん (スップ Sd73-E5Ow) mailto:sage [2022/07/24(日) 08:41:03 ID:mCJq3UO5d.net] >>879 何も知らねえネンネだなw 熟練者を歳だけでやめさせるバカ企業が 今どうなってるか見りゃわかるだろめくら IT業界だけ特別とでも思ってんのか 昭和の一時期だけ特別だったが いい歳こいたジジイが言ってんなら 進化の止まった化石はてめーだ
898 名前:デフォルトの名無しさん (スップ Sd33-ENu5) mailto:sage [2022/07/24(日) 09:04:36 ID:gwuc5Le4d.net] >>883 コーダージジイ効いてて草 こういうやつってマジでガキに見えるよなー 人の上に立った経験とか一度も無さそう
899 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 10:46:43.07 ID:Zzdkl5Gk0.net] >>880 しかし、生まれつき、あるいは育ちのせいであるのかもしれませんが、無意識領域が活発に活動しやすい人、というのはあるかもしれませんよ 人はそれを「閃きの人」と呼ぶようですが そして無意識領域がよく働く人はプログラマの適性があるといってもいいでしょうね https://mevius.5ch.net/test/read.cgi/tech/1556284220/703 https://mevius.5ch.net/test/read.cgi/tech/1640401906/23
900 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 11:42:01.96 ID:W6pjxqRvM.net] 閃き改変スパゲティ
901 名前:デフォルトの名無しさん [2022/07/24(日) 16:22:46.57 ID:9ixHhHoi0.net] BASICもない時代か。 俺の時は TK-80 に BS 乗っかったやつが BIT-INN に並んでたな。カラーの COMPO-BS もあった。 その他 Apple ][、PET、TRS-80、BASIC MASTER Level 2、MZ-80K 等がある時代で、フロッピーディスクが Apple のやつは1枚2000円だったかな?
902 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 16:31:31.34 ID:95dB6L1Ta.net] COMPOにカラーなんてあった?
903 名前:デフォルトの名無しさん [2022/07/24(日) 16:45:38.99 ID:9ixHhHoi0.net] >>888 なかったっけ? あったような気がするんだが。 PC-8001 の画面の見間違いではないと思う。まだ出てなかったし。
904 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 16:49:13.87 ID:cLNfquIV0.net] >>884 コード書けねえ産業廃棄物がコーダー馬鹿にしてんな フリーターだのニートだのってレベルの稼ぎの扶養虫にしかなれる見込ねえくせに 俺は生まれながらの帝王だ退かぬ媚びぬ省みぬだと? ぶわははは 這い上がる気力のねえやつに栄光はねえんだよ、憶えておきな
905 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 17:04:41.33 ID:xRzJF5neF.net] >>885 受動意識みたいなオカルトに構っていてはプログラマにはなれませんよ プロの仕事にはすべて説明可能なことが求められます どこかのリモートで動いてる端末人間にプログラムはできません
906 名前:デフォルトの名無しさん (ワッチョイ 1301-T1rX) mailto:sage [2022/07/24(日) 17:18:29 ID:bdlqmtah0.net] なかったと思うよ、そもそもCOMPO-BS/80はキャラクター表示しかできないし
907 名前:デフォルトの名無しさん (US 0H0b-RyvJ) mailto:sage [2022/07/24(日) 17:25:59 ID:C0umvz7vH.net] >>891 デバッグ箇所の発見にも説明が求められるのですか?バグが修正されたことを証明できれば十分なのではないでしょうか?
908 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 17:34:50.38 ID:cLNfquIV0.net] 発見に至る思考過程はいらんな ドライに事実関係の説明のみで足りる 犯人探しは俺らの仕事ではなく 下手に口を出すとこっちが立場悪くなる
909 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 18:23:35.95 ID:nci3iowod.net] >>893 >デバッグ箇所の発見 バグ箇所のことかな どうしてそのようなバグが発生したかまで明確にしないと 同じバグがまた起こるだろう
910 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 18:43:56.60 ID:3i0SwxtcH.net] >>895 話をずらしましたね 私は >デバッグ箇所の発見 つまり、どこから手をつければいいか当たりをつける能力について言及したのであって、発見したバグの振る舞いについて説明する必要はないとはいっていませんね 話をずらしてはいけませんよね
911 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 18:49:15.54 ID:DQlWH9SB0.net] どこにバグがあるか、ゴーストがささやいてくれる
912 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 18:52:37.42 ID:cLNfquIV0.net] 言い逃れの天才はいらねーよ 頼むから志願してくんな ゴミ処理だけでどんだけ負担か考えろ馬鹿が
913 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 18:54:41.69 ID:cLNfquIV0.net] それで給料くださいだと? 金銭感覚が絶望的にバグってる超危険人物め
914 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 19:03:04.31 ID:DQlWH9SB0.net] そういう人物は確かにいる システム障害時に、数分で原因を調べ上げ復旧する奴
915 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 19:24:24.29 ID:ZZNXvMhPH.net] >>900 その人なりのロジックがちゃんとあるけれども、凡人には理解できないのかもしれませんね… まあ意識(ロジック)も無意識もフルに総動員しているとは思いますが >>891 あくまでとある仮説に興味がある、といっているだけで、それですべてを説明しようとは思っていませんよ それにしても「準備運動電位」、あなたはどう説明しますか?
916 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 19:27:04.95 ID:cLNfquIV0.net] 電位ってそれ以上でもそれ以下でもないな 喩え話でもしたいようだが、この世界では究極の最重度池沼ってだけw
917 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 19:32:05.82 ID:bdlqmtah0.net] >>896 でかいシステムなら分割して調査することもあるからどこから調査するとかどうやって調査するかとか事前に決めるのは珍しくないぞ そんなことも知らないのはお前の経験値が低いだけ
918 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 19:58:27.05 ID:3wgufn1TH.net] >>903 そんなことはあたりまえでしょう? 手当たりしだいにしらみつぶしに見てバグが見つかるとでも? でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ そういう人間の考え方が、単にロジック一辺倒ではないのでは?という切り口で話をしているものだと思っているのですが あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、 そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?
919 名前:デフォルトの名無しさん [2022/07/24(日) 20:09:14.55 ID:IZxLU3+7a.net] 自分が正しいと考えていないに決まってるだろ
920 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 20:21:06.06 ID:bdlqmtah0.net] >>904 > 手当たりしだいにしらみつぶしに見てバグが見つかるとでも? それでないと見つからないバグもある > でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ そう言うのは経験値が違う まあその考え方を文書化できるかどうかは別の話 > あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、 > そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか? お前はテストもしないのかよ
921 名前:デフォルトの名無しさん [2022/07/24(日) 21:29:00.78 ID:9ixHhHoi0.net] スレが活性化したようだな。 読む気が起こらんけど。
922 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 21:42:14.57 ID:lVfeNqR1r.net] 全然、C言語の話にならんな
923 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 21:44:29.10 ID:+vY6C834M.net] 話題に参加できない…
924 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 06:28:56.85 ID:DH7dOKBU0.net] 何でしらみつぶしが出てくるんだ 不具合の内容から疑われることを挙げて 排除できる項目を排除して疑う範囲を狭めていくにあたり 論理思考が得意なやつとそうでないやつの違いが出るってだけだ
925 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 07:35:59.20 ID:fNFid1J7H.net] >>910 バグの排除にロジックが必要なのは当然ですが、それだけではないでしょう? 特に自分のバグを外すには、そもそも自分のロジックを疑うという能力は、ロジックを使うのはまず困難なのでは?
926 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 07:56:46.33 ID:GzNr1keE0.net] >>910 疑う範囲を狭めて最後はしらみつぶしとか普通にあるだろ なぜ排他だと思った?
927 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 08:14:58.48 ID:DH7dOKBU0.net] バグの排除とは言ってない 疑いが晴れたものを検査から除外するということだ なぜ排他が出てくるのか脈絡がわからない
928 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:21:33.29 ID:/kQlrWHQa.net] >>913 > バグの排除とは言ってない おれも言ってないけど? > 疑いが晴れたものを検査から除外するということだ 検査の意味がわからんが調査のことならしらみつぶしは疑いを晴らす方法の一つ > なぜ排他が出てくるのか脈絡がわからない お前がしらみつぶしを排除しようとしてるから
929 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:31:36.48 ID:DH7dOKBU0.net] アホ検知用にわざとアンカー貼らなかったら見事に引っかかったなw
930 名前:デフォルトの名無しさん (ワッチョイ 1301-T1rX) mailto:sage [2022/07/25(月) 09:53:41 ID:GzNr1keE0.net] なにを引っ掛けたつもりになってるのかさっぱりわからん まあまともなレスを返せなくなったんだろうなw
931 名前:デフォルトの名無しさん (ワッチョイ 1363-VsAj) mailto:sage [2022/07/25(月) 11:30:58 ID:TD+9RuG80.net] 仕事している人は、こんなところで遊んではいない
932 名前:デフォルトの名無しさん [2022/07/25(月) 11:45:05.33 ID:dJJE5upaa.net] C++の話題は禁止?
933 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 11:49:31.88 ID:TD+9RuG80.net] 禁止ではないと思うが、スレ違い扱い受ける
934 名前:デフォルトの名無しさん (スップ Sd33-8HTV) mailto:sage [2022/07/25(月) 12:13:08 ID:n7JQk0Isd.net] >>901 ただのDSPだろう CPU(脳)が応答していては間に合わない用途のためにプログラマブルなDSPがある ボールが見えてから打つかどうか決めていては間に合わない このコースに来たらバットを振れと反射神経をプログラムできるようになっている それがあたかも脳の判断に先行してるように見えるだけ
935 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 12:52:39.70 ID:BRC10lp0d.net] >>914 流れ読めてないアフォハケーン
936 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 13:27:55.29 ID:GzNr1keE0.net] >>921 レスできなくなって流れが読めてない~ってバカ?w
937 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 13:30:31.02 ID:lj82liZDM.net] シーッ
938 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 15:49:07.62 ID:iiUi9YtaA.net] はっきり言ってやらなきゃ解らんようだな バグの排除と言ったのが誰なのか おまえ読み間違えてんだよ
939 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 15:58:23.55 ID:GzNr1keE0.net] >>924 だから>>911 なんて俺には関係ないだろ アンカーもまともに追えないのか?
940 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 16:01:28.30 ID:TD+9RuG80.net] ロジックは合っているがバグだ、というのは割とよくある(まれにではない)
941 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 16:36:40.16 ID:GzNr1keE0.net] >>926 ・仕様バグ ・非同期処理絡み ・限界値オーバー等 それ以外ってあったっけ?
942 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 17:00:35.20 ID:TD+9RuG80.net] 今は昔、DBが気軽に使えなかったシステムがあった。 プレーンファイルにデータが格納されていた。 お客の要求は、 「その中からキャンセルされたデータを見つけ、取り除いてくれ。件数は高々数十件のはず」 当時のSEは、キャセルデータ一覧から一つずつデータを取り出し、 格納されたファイルから見つけてはキャンセルフラグをセットしていく という設計をした。スッキリした設計で、客のレビューも通った。 プログラマは仕様書通りにプログラムを作成した。 実運用に入ったところ、この処理がいつまで経っても(何時間も)終わらない事態になった。 原因調査を依頼され、調べて対処方法を提案し、 プログラムの手直しをした。 その結果、処理は10分程度で終わる様になった。 実データは、お客の想定よりは多かった(と言っても100件程度だったが)ことと 試験環境が貧弱で、性能評価が不十分だったことが挙げられた(公式見解)。
943 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 17:06:35.01 ID:p29EsXcp0.net] 今は昔 ドラゴンボールというものありけり 7つ集めないと気軽に使えなかった
944 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:19:30.93 ID:0R5nn0qA0.net] 非同期やマルチスレッドなんかの 暗に平行に動いてるようなやつ の想定順序外の順で進んでったとき
945 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:25:09.85 ID:gun8tVmY0.net] 昔のプログラム系コラムで(うろ覚えなんで改変あり) 統計計算するコード書いて、 自分で用意したデータでは問題なかったが、 デバッガ―チームのデータでは誤差が酷いとの報告が。 変数をfloatからdoubleにしても改善せず、 使ったテストデータ見せてもらったら数値が10兆のや1/10兆のまであったとかなんとか。
946 名前:デフォルトの名無しさん (ワッチョイ 8bbb-OROS) [2022/07/25(月) 19:42:53 ID:uz33IoOs0.net] それって範囲チェックを怠った普通のバグよね?
947 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 20:13:02.04 ID:GzNr1keE0.net] >>928 ,931 件数や数値の範囲を規定してなかったんだろうな 規定してたらテストしてるだろうし >>928 の方はキャンセルする件数も重要だけど変更するプレーンファイルのサイズも重要
948 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 21:04:57.01 ID:TD+9RuG80.net] 仕様通りに作ってあるってことで どこもバグだと認めず、修正にかかれなかった
949 名前:デフォルトの名無しさん (ワッチョイ 1301-T1rX) mailto:sage [2022/07/25(月) 21:23:11 ID:GzNr1keE0.net] 実行時間の上限も書いてなかったんでしょ? ならバグじゃないからそりゃ誰も修正しないよね
950 名前:デフォルトの名無しさん (ワッチョイ 1363-VsAj) mailto:sage [2022/07/25(月) 22:30:59 ID:TD+9RuG80.net] そうもいかん 放置すれば業務が止まる
951 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 04:44:04.50 ID:1cOtUCQ/0.net] なら仕様を作った奴がポンコツだったってだけの話
952 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 06:23:30.91 ID:3o/UjHLA0.net] >>937 奈良仕様... 要人警護でバグるんだな。
953 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 15:23:03.61 ID:SJaqZdjxH.net] >>920 それは条件反射ではない普通の「反射」 か、あるいは条件反射ですね 「準備運動電位」 https://ja.wikipedia.org/wiki/%E3%83%99%E3%83%B3%E3%82%B8%E3%83%A3%E3%83%9F%E3%83%B3%E3%83%BB%E3%83%AA%E3%83%99%E3%83%83%E3%83%88 1970年代に行われた実験により、ボタンを押す・指を一本曲げる、手首を曲げる等運動の先立って脳に変化が起こる、という観測結果が得られています 2008 年には、被験者が意思決定をするよりも最大 7 秒先立って脳活動が認められる、という^報告がありました
954 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 18:24:38.80 ID:fW/tQ0510.net] その生理現象を検知して価値を生み出すコードを書くならともかく 精神論や根性論の類いに持ち出す野郎はスレチ
955 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 20:36:46.75 ID:s+/k7yg8H.net] >>940 ええ、バグ取りに使えないものかと 異様にバグ取りがうまい人の頭の使い方について話題にしようと思ったんですよ
956 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 20:59:48.42 ID:RzFS95olr.net] そんなの経験の差でしょ 脳科学なんかを引くより経験積んだほうが実用的で合理的
957 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 21:21:37.87 ID:LALlY+2gH.net] >>942 いつまでも KKD ではねえ もう少し精緻な話がしたいものです
958 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 21:22:24.36 ID:4nABh0qj0.net] バグ取りの上手い人というか、発見が早い人は アスペ気味の人が多い これは悪い意味で言っているのではなく 天才肌というか、直感でものを把握出来る人という意味です
959 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 21:24:16.26 ID:LALlY+2gH.net] >>944 それもアラアラな話だと思いますが しかし、その直感でものを把握できる、ってのがどういう思考法なのか興味がありますね もう少しそのタイプのプロフィールを教えていただけませんか?
960 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 21:33:29.39 ID:4nABh0qj0.net] そういうのは、誰もマネが出来ないから参考にするのは無理でしょう 脳細胞のシナプスからして違うかもしれないし
961 名前:アリ人間 mailto:sage [2022/07/26(火) 21:58:01.96 ID:SFGiBpCod.net] プログラムの仕組みを完全に理解したいなら、ITパスポート、基本情報、コンピュータサイエンスの3つ。
962 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 12:32:34.18 ID:FYpyeWPbd.net] >>941 C++の話ではないね
963 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 14:58:27.27 ID:9giz0zU00.net] あ、Cだった 同じことだが
964 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 15:27:42.65 ID:hSAjJRb60.net] 混ぜたら駄目、危険!
965 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 17:42:15.99 ID:9giz0zU00.net] プロの化学者つかまえて次亜塩素酸ナトリウムと塩酸を混ぜるなとドヤるアホ みたいなもんだな
966 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 17:53:09.20 ID:j+X5VIDEM.net] 混ぜるな危険 ECMA 372
967 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 19:46:49.41 ID:X16X3UK80.net] >>945 直感って大抵は経験に基づくショートカット。 常人でも意識しながら年単位でデバッグ続けてりゃ多少は身につくんじゃねの?
968 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 20:04:33.20 ID:KHWw5jDSH.net] >>953 身につくかどうか、ではなく、どんな考え方、思考法、そして可能であればその思考法に似た行動様式等がざっくばらんに出てくることを期待します
969 名前:デフォルトの名無しさん [2022/07/29(金) 10:43:07.31 ID:nIcw6oQba.net] >>954 鏡で自分の顔を観てバグを一覧にしてみ 良い訓練になる
970 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 13:39:55.55 ID:LR/vrGjN0.net] これ俺の顔じゃない 鏡がバグってる
971 名前:デフォルトの名無しさん (ワッチョイ 79bb-dSCr) mailto:sage [2022/07/30(土) 00:46:07 ID:wZaxY20D0.net] 組み込みの世界ってまだC言語が主流ですよね? IoTも同じ?
972 名前:デフォルトの名無しさん (ワッチョイ 9a3e-dSCr) mailto:sage [2022/07/30(土) 00:52:24 ID:B4kVDCsM0.net] IoT というのは広い概念なのでそれだけではなんとも言えん。 低レイヤもあれば高レイヤもある。
973 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 13:46:54.93 ID:kKuVH5i8M.net] I Of the Tiger
974 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:28:57.06 ID:sZRL8Eez0.net] Intensity Output Time
975 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 16:11:54.93 ID:2k62MWGF0.net] 次のCの仕様が出てくるというのにこのスレでは全く話題にならないんだな
976 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 16:16:00.43 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 16:20:55.72 ID:2BJ7IgJr0.net] 新しいCってそもそもどこで需要があるんだろう
978 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 16:38:39.78 ID:wZaxY20D0.net] >>958 高レイヤーだと普通にリッチな言語が使われたりするのかな >>961 deferが入るかもって別スレで見かけたけど本当?
979 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 16:55:11.02 ID:KiVbgp3AM.net] 組み込みと言ってもラズパイ環境では完全にPythonが主流でC/C++(gcc)はあまり利用されてないイメージがある
980 名前:デフォルトの名無しさん (ワッチョイ 7a63-dSCr) mailto:sage [2022/07/30(土) 17:15:44 ID:rf6S0zxh0.net] 組込って普通は静的バイナリにするんじゃないの
981 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr) mailto:sage [2022/07/30(土) 17:20:48 ID:B4kVDCsM0.net] >>964 C23 には defer は入らない見込み。 全体としては C++ の後追い的な変更が多い。 auto が型推論付きの変数定義になるだとか、constexpr や nullptr が導入されるだとか、 属性の表記法が C++ 風の [[ ]] を使った形になるだとか、そういう感じのやつ。 (ちなみに今回導入される constexpr は変数には付けられるが関数には付けられないので コンパイル時プログラミングが C++ みたいに出来るわけではない。 定数式の成立要件が C と C++ で違うので C++ 寄りにする追加機能。) 思い切った変更ではあるが、根本的なプログラミングスタイルを変えない程度のバランスのとれたところだと思う。
982 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr) mailto:sage [2022/07/30(土) 17:34:09 ID:B4kVDCsM0.net] >>966 もちろんそういう部分も大きいけど……。 リッチな組み込みは一昔前のパソコンを超えるくらいの性能はあるし Linux くらいは載るので、 デバイスドライバさえ用意すればあとはパソコンみたいに使えるという場合は普通にある。 かつては組み込みと言えばそのデバイスドライバの部分こそ大きかったと思うんだが、 IoT を意識するレベルの製品だとアプリケーションレイヤが巨大なので Python くらいは動くこともあるだろう。 主流かというとちょっと疑問ではあるが……。
983 名前:デフォルトの名無しさん (ワッチョイ 7a63-dSCr) mailto:sage [2022/07/30(土) 17:38:53 ID:rf6S0zxh0.net] それは組み込みと言うより、OS上で動かしている単なるアプリだろう
984 名前:デフォルトの名無しさん (ラクッペペ MMee-kNao) mailto:sage [2022/07/30(土) 17:48:55 ID:lDkW8Lp7M.net] https://www.google.co.jp/search?q=raspberry+pi+%E9%96%8B%E7%99%BA%E8%A8%80%E8%AA%9E
985 名前:デフォルトの名無しさん (ワッチョイ 7a63-dSCr) mailto:sage [2022/07/30(土) 17:50:58 ID:rf6S0zxh0.net] パソコンで同じことやっても組み込みなんて言わないし
986 名前:デフォルトの名無しさん (ラクッペペ MMee-kNao) mailto:sage [2022/07/30(土) 18:00:48 ID:jaybBP1OM.net] 組み込みの開発はクロス開発が基本なのでパソコンはただの端末だけどね プログラムはボード上のSoCで実行される
987 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 19:32:55.53 ID:wZaxY20D0.net] IoTにはC言語は深く入り込んでないのか >>967 型推論付くってマジ? 個人的には嬉しい
988 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 19:50:32.99 ID:zHogqexf0.net] >>964 > 高レイヤーだと普通にリッチな言語が使われたりするのかな 複合機などはWebサーバー程度は普通に入ってるから設定画面等は HTML, JavaScript, CSS, Python を使ってたりする IWS (Internal Web Server:HTML, JavaScript, CSS, Python) https://dsp.konicaminolta.jp/best-program もちろんOS上で動いてるし、でかいシステムだとPCその物を内蔵してたりすることもある なのでこんなものが売られてる https://jpn.nec.com/fc/index.html
989 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 19:51:42.13 ID:DgXxKl0UM.net] IoTというよりはスタンドアローン環境か小規模な独自ネットワーク程度の組み込み分野の方がC/C++利用は多いと思う
990 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 23:12:48.90 ID:wZaxY20D0.net] >>974 こういう機材に囲まれたことないなー 俺はIoTは名前だけでほんとに実感がない
991 名前:はちみつ餃子 mailto:sage [2022/07/30(土) 23:53:43.60 ID:B4kVDCsM0.net] >>969 機器に「組み込まれ」ているなら組み込みと呼んでいいだろう。 パソコンに近い構成にしてパソコンでも使えるソフトウェアを活用する場合があるというのは結果論だよ。
992 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 00:41:41.63 ID:n00x/A2v0.net] そうなるとPC使っていても組み込み扱いして良いと言うことになりますよね 近い構成どころか、何でもありになりそう
993 名前:はちみつ餃子 mailto:sage [2022/07/31(日) 01:25:42.56 ID:9sXTRHUo0.net] そうだよ。 技術的な実態としてはそんなにはっきりした境界がない。 なんでもありだ。 用途の側でふんわりと分野が分かれてる。
994 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 01:39:56.41 ID:AA5JChgka.net] 組込とハード制御的なやつの混同はよくありますね
995 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 06:39:14.45 ID:1QnevV7r0.net] >>961 Cは枯れた言語で今さら新機能は誰も望んでないからな むしろ余計なことをしてくれるなと
996 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 14:01:45.17 ID:k/gcENLBM.net] 古いソースが問題なくコンパイル出来ないと、それはそれで問題にされる。 今でもトライグラフ受け入れないと駄目なんだろう
997 名前:ハノン mailto:sage [2022/07/31(日) 17:43:38.22 ID:E3I5T4z5H.net] >>981 C99 の C++ との互換性がまったく取れていない変てこ機能はさっさと削除してほしいものです いまや私は C のソースを書くのに C++ コンパイラが通るか試してみる体たらく、あれらはいったいなんなんだ?
998 名前:はちみつ餃子 mailto:sage [2022/07/31(日) 19:20:45.67 ID:9sXTRHUo0.net] 今回「削除」になったのはいわゆるK&Rスタイルの関数定義くらいだな。 いずれ削除するということは以前から書かれてたし、 習慣的にも行儀が悪いという考え方が支配的だから これで問題が起こるなら長い移行期間中に対応できてなかったほうが悪いと言ってよかろ。
999 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 19:35:38.56 ID:n00x/A2v0.net] 削除って事は、古いソースのコンパイルはもはや出来ないと言うことなんでしょうか いや、なに、クラシックカーに乗ってみたい位の好奇心ですけど
1000 名前:アリ人間 mailto:sage [2022/07/31(日) 19:46:09.16 ID:sdKo2iJ+d.net] 歳をとるということ 〃 シワが増えるということ 〃 なのに ぼくたち 私たちは 〃 なぜ、最新機種で進化の止まった古臭いコンパイラを使うのでしょうか でしょうか
1001 名前:はちみつ餃子 mailto:sage [2022/07/31(日) 20:23:09.10 ID:9sXTRHUo0.net] >>985 削除された機能を使っていればそういうことになるが、 そもそも C で書かれたプログラムなんてどこかしらで環境依存な部分があるもんだし、 よほど配慮されたものでない限り古いコードは素直には動かないのが普通だろう。 まあ C23 が出来たからと言って C89 (に対応したコンパイラ) が直ちに消滅するわけでもないし、 なんだかんだであと二十年くらいたっても C89 派がそれなりにはいそうな気がする。
1002 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 20:35:31.51 ID:1QnevV7r0.net] K&R CこそCの面白さの塊なんだけどな GCCが「カバにダンスを踊らせるのはあまり面白くない」なんて言ってた人もいるように 歳月とともに雁字搦めになっていく流れは酷くつまらない
1003 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 20:47:12.68 ID:TVIRLEiRH.net] >>988 でもね、C のコンパイラは C で記述してほしかったですね 確かにカバの調教は難しいのかもしれませんが というか、gcc をコンパイルするためだけの c で書かれた c++ コンパイラって需要ありますかね?
1004 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 20:51:31.04 ID:PC792jYOa.net] >>988 無理すんなよ
1005 名前:蟻人間 mailto:sage [2022/07/31(日) 20:59:27.98 ID:sdKo2iJ+d.net] そろ次スレ
1006 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 21:03:23
] [ここ壊れてます]
1007 名前:.63 ID:n00x/A2v0.net mailto: ラージモデルでFarポインタ使いまくったプログラム合ったけど、 今は流石に見るのも嫌だと思う 何言ってるか分からないと思うが、俺も分からない [] [ここ壊れてます]
1008 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 21:17:26.94 ID:UwyiR8NW0.net] >>992 むしろnearポインタの方が面倒だと思うが...
1009 名前:デフォルトの名無しさん (オッペケ Sr05-5tLW) mailto:sage [2022/08/01(月) 08:38:31 ID:wVsEVhkpr.net] あり人間とかキチガイ、こっちでも頓珍漢なこと書いてるのか
1010 名前:ハノン mailto:sage [2022/08/01(月) 19:47:44.58 ID:kaXTkJ9F0.net] >>992 ラージモデルの far ポインタでしょう?別に far とか書かなくても普通にポインタを書けば far ポインタになったはず であれば、あとは 64kb の壁を意識してむやみにポインタのインクリメントをせずに上手に部分にわければなんとかなったでしょう far ポインタでの経験はいろんな場所で活かせる貴重な体験だと思いますよ 私は試食版 LSI-C のスモールモデルで陽に far を指定して far ポインタをバリバリつかっていましたよ スモールモデルだからコード領域はせまいけれども(near コールしか使えない)、far と書けばデータは 640KB までフルに使えましたし
1011 名前:デフォルトの名無しさん (ワッチョイ 16ae-G1eK) [2022/08/01(月) 20:05:11 ID:4CMby4Hu0.net] インテルのクソ設計でみんな迷惑してたってだけの話 K&R Cの楽しさとは全く何の関係もない 68kと86系は異次元の世界だった
1012 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 20:55:56.73 ID:4h+jHRsn0.net] >>995 テキトー書く前に8086 メモリーモデル とか near far huge とかでググってから出直してこい
1013 名前:ハノン mailto:sage [2022/08/02(火) 07:34:13.90 ID:QS3wPWC90.net] >>997 私の認識であってますよ ラージモデルのデフォルトポインタ(データ・コードとも)は far ですし、スモールモデルはどちらも near しかしスモールモデルでも far ポインタは far と陽に宣言すれば使えるんですよ…
1014 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 11:58:06.82 ID:ziGJzmHZd.net] Windows16ビットのCでは16ビットハンドルを架空の構造体へのnearポインタとして実装してたな(#define STRICTした場合) 例えばデバイスコンテキストハンドルをビットマップハンドルに代入しようとするとtype mismatchエラーになってすぐわかる STRICTでないと単なる本来の16ビット整数として扱われ混同しても通ってしまう win32ではnearがないので普通の32ビットポインタになってしまいメモリがちょっともったいない
1015 名前:デフォルトの名無しさん [2022/08/04(木) 18:41:17.13 ID:+TMVVsOn0.net] >>92 push(保存)してpop(書き戻し)してるから結局pushしたときのデータになる popとpushの間のややこしいとこはシカトな
1016 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 222日 6時間 29分 31秒
1017 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています