C言語なら俺に聞け 149

■ このスレッドは過去ログ倉庫に格納されています
2018/10/28(日) 22:01:44.38ID:D9Gt7gmT0
!extend:checked:vvvvv:1000:512

次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。

C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/12/21(金) 13:52:55.77ID:Vi7rbNdd0
C++亡者はなんでCのスレで延々と雑談するんだろう
2018/12/21(金) 14:11:28.71ID:PiZ4lBZmM
継承より委譲。継承は間違いだったby OOPコミュニティ一同
https://refactoring.guru/replace-inheritance-with-delegation
681デフォルトの名無しさん (アウアウウー Sac9-0FqV)
垢版 |
2018/12/21(金) 15:27:16.62ID:mfb3XB1ua
>>673
そうだよな。普通のオブジェクト指向言語は順序に関わらず継承できるよな。
とすると普通でない言語での話かまたは彼が何かを誤解しているということかな。
2018/12/21(金) 15:50:13.39ID:lfxw1L5ka
継承とはキャストと見つけたり
2018/12/21(金) 16:19:17.16ID:FGbnqlsP0
>>680
継承より委譲を使うべき事例を挙げているにすぎない
2018/12/21(金) 16:31:46.47ID:PiZ4lBZmM
継承より委譲を使うべきかは「あとで」発覚する。
犬クラスや猫クラスを哺乳類クラスから継承させて喜んでいるところに、問題(カモノハシ)は突然やって来るのだ。
そうなってからあわてるよりも、常に委譲を使い、継承のことなど忘れさるべきだ。
2018/12/21(金) 17:02:28.85ID:vKEYTKwK0
そういやgolangは継承捨てちゃったんだよな
2018/12/21(金) 17:07:16.46ID:FGbnqlsP0
>>684
1行目と2行目以後、言ってることが矛盾してるぞ
「あとで」か「常に」か、どっちなんだ
2018/12/21(金) 17:16:20.54ID:QpLg2mIsM
>>686
横からだけど、全く矛盾してないぞ?
どこが矛盾してるんだ?
688デフォルトの名無しさん (アウアウウー Sac9-0FqV)
垢版 |
2018/12/21(金) 17:31:07.39ID:mfb3XB1ua
うん。矛盾してない。
日本語よくわからない人かな?
2018/12/21(金) 20:19:10.57ID:lsetsG4i0
初心者です。

カモノハシは哺乳類ですが、哺乳類クラスを継承することでどのような問題が発生するのでしょうか?
よろしければ教えてください。
2018/12/21(金) 20:44:04.05ID:QZspeJhP0
妊娠メソッドが規約に違反してしまいます。
2018/12/21(金) 20:45:30.64ID:choQhZIjM
>>681
だから継承でもなんでもなくて構造体の最後の要素の長さを可変長にしてるだけ
99.9%問題ないけど厳密には規格違反だったと思う
2018/12/21(金) 20:47:05.89ID:b6qAhl4Oa
>>689
いつ哺乳類と分類できたんだという話だよな。
その分類もいろんな切り口があるわけだし。
693デフォルトの名無しさん (ワッチョイ a3d4-ygkw)
垢版 |
2018/12/21(金) 20:57:17.23ID:lsetsG4i0
なるほど、カモノハシは胎生ではなくて産卵するので問題になりうる、ということですね。
ありがとうございます。
2018/12/21(金) 21:37:11.59ID:81A29Thc0
オライリーのアルゴリズムクイックリファレンス持ってる人居ませんか?
アルゴリズムを勉強したいんですけど、結構ソースコードがあって分からないです
2018/12/21(金) 22:40:36.57ID:HoIQMu/H0
あれ肝心なところは「ここでC++のテンプレートを使って・・」とか
「○○ライブラリを使って・・」となってて、結局よく分からんかった。
2018/12/21(金) 22:46:23.26ID:e7/cJrp90
本当にゆとりはどうしようもないな。

初心者は絶対的な知識量が足りてないから、やってることは結果的に「老害」と一致する。
C言語なんて20年ほぼ変更無し=ここ20年の進歩を「文法的には」取り込めてないのだから、
文法から入るお前らみたいな奴は必ず「老害」からのスタートになってしまうし、実際そうなってるだろ。

この点、やはり初心者は新しい言語からやるべきなのさ。
そうすれば、少なくともお前らのような「古くて非効率な手法しか使えない馬鹿=『老害』」にはならずに、
「新しくて効率的な方法しか使えない新人」になるが、こっちの方がずいぶんマシだ。
とはいえ、新しすぎて評価が固まってない言語も危険ではあるが。(具体的にはGoがゴミ)

「継承」に粘着している馬鹿は継承の実装を考えてみるといい。
C++は当初はトランスパイラ=C++文法をC言語に変換してCコンパイラを通すもの、だったと聞く。
同様に、C++でのOOPをC言語で実装する際、どう変換するか考えてみるといい。
正解は、他言語のOOPの実装をググれば得られるだろう。

継承については色々議論があるが、今回のようにコンテナの場合は、
ListBaseクラスを継承しテンプレートでデータ構造に幅を持たせるのがとりあえずの正解だよ。
おそらくstd::list<T>もそうなってると思うぜ。(ただし速度重視で全テンプレート展開もあり得るが)
そしてC言語においても同等のオブジェクトコードが得られるソースコードを記述しろ、という話であってさ。
(それ以前にコンテナが欲しければ素直にC++使った方がいいと思うが)

というか、C++は改良版Cなんだから、C++を食わず嫌いするのも典型的な老害なんだよ。
当然だがC言語が抱えていた問題点は修正されてる。
コンテナ等も完全に整備されてる。
スマポ()とかやってるC++erは馬鹿だから無視でいいが、
Cの問題点に直面してるのにC++を試してない奴は定義通りの老害だよ。
Cが出現した頃とはずいぶん状況が変わっているわけでさ。
https://cpplover.blogspot.com/2016/05/mitsicp.html
2018/12/21(金) 23:15:48.04ID:pse73zvs0
だったらC++スレ行けば?
PythonやJSのスレでRubyのウンコード貼り付けて宣伝する糞キチガイと同じ臭いすんだわお前。クサい。
2018/12/21(金) 23:43:53.69ID:e7/cJrp90
>>697
文句言う前にOOPを理解しろよ。お前は完全に「老害」だぞ。
そしてCでもOOPに準じてコードを書け、という話であってさ。

ゆとりは幼稚すぎる。
もうちょっとましな反論は出来ないのか?

○○と同じ臭いがする、というのもまたお前らのパターンのようだが、
結局の所、当たってる奴がいないだろ。
それは、ゆとりの脳は1bitの容量しかなく、
「ぼくのすきなひと」「ぼくのきらいなひと」しか解像度がないからだ。
そんなことやり続けてるからお前らは幼稚園児のままなんだよ。

が、マジな話、C言語でもOOPを理解してコーディングするのとデタラメにやるのではずいぶん違うから、
OOPはマジで理解しとけ。
むしろC言語(というか各言語)は方言でしかなく、
プログラミングパラダイムとしてのOOPの方がつぶしが利くし、有用だ。
699デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/21(金) 23:46:17.30ID:j37Ohb1y0
https://ideone.com/WQ3pQP

animal
┣platypus
┗bird━penguin

普通にCでも継承はできる
低学歴知恵遅れだとCではできない

もともと継承なんか使ってもいいことなんかないからな
低学歴知恵遅れほど嬉しがって継承使う
700デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/21(金) 23:58:01.00ID:j37Ohb1y0
何度もいうが
オレレベルぐらいでないとオブジェクト指向はムリ

何度もいうが
低学歴知恵遅れにオブジェクト指向は
キチガイに刃物

何度もいうが
この板にいるような低学歴知恵遅れに
オブジェクト指向はムリ
2018/12/22(土) 00:14:40.06ID:ruBkeT7Z0
>>699
毎回お前のその無駄な情熱はどこから来るのか謎だが。

一応言っておくと、parentを持つその方法は「包含」であって、「継承」ではないぞ。
この際大した問題ではないが。
702デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/22(土) 00:18:09.34ID:b6CiPLFa0
低学歴知恵遅れは
vtableも知らないのか

レスから頭の悪さがにじみ出てtる
703デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/22(土) 00:20:00.60ID:b6CiPLFa0
仮想関数でないメンバ関数は
はっきりいって普通のCの関数と同じだからな

まず低学歴知恵遅れは基本的なことがわかってない

こんなのがC++つかうとかムリ
2018/12/22(土) 00:22:20.24ID:ruBkeT7Z0
あとついでに言っておくと、リストについては、

・おそらくポインタに不慣れだから無駄に引っかかってるだけ
・どうせリストなんて使わない
 (=事実としてその京産大の先生は使ったことがないから間抜けなインタフェースになってる)
・そもそもコンテナが必要ならC言語以外では普通に標準orフレームワークで整備されてる
 (=ただ単に再開発してるだけ)

だから、引っかかった場合はとりあえず無視でいいと思うが。
705デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/22(土) 00:23:04.93ID:b6CiPLFa0
もうな低学歴知恵遅れはレスすればするほど
低学歴知恵遅れなのを自白することになるからな

レスしないほうがいい
2018/12/22(土) 00:34:25.01ID:ruBkeT7Z0
>>702
vtableはフラットに構成されてるものなんだよ。
お前のは階層構成になってるし、実際、直接呼び出せてないだろ。(無駄にオーバーヘッドがある)
それは「継承」ではない。

まあ正直そこら辺は割とどうでもいいのも確かだが。
2018/12/22(土) 00:35:32.56ID:mRtO7h8x0
>>696
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/37
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
708デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/22(土) 00:36:02.90ID:b6CiPLFa0
また低学歴知恵遅れが
もっと頭悪いこといいだしてるわ
709デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/22(土) 00:38:18.48ID:b6CiPLFa0
もうね
支離滅裂すぎて
コメントしようがない

それぐらいめちゃくなこと書いてる自覚が
低学歴知恵遅れにはない
710デフォルトの名無しさん (ワッチョイ cb80-5YD5)
垢版 |
2018/12/22(土) 00:41:48.52ID:b6CiPLFa0
頭悪すぎると
自己防衛本能が働くのかもしれないが
脳みそが空想の世界にいくらしいな

どうやったらそんな頭悪いええ加減なレスを
自信満々に淡々と書けるのか不思議でならないわ
2018/12/22(土) 01:48:01.62ID:ghZDfTzQ0
>>696
20年て、どこから出てきたマジックナンバーだ?
それを言うなら29年なんだが
2018/12/22(土) 07:52:56.06ID:gJp1vt+rM
Linusがcppを排したのは正解だったんだな
2018/12/22(土) 08:27:41.36ID:LEZtop+80
低学歴知恵遅れ&お前ら連呼の人が、引数 void って初めて見たぞ
の人と同一人物だったとは
2018/12/22(土) 10:05:42.90ID:Ym27DU080
C言語のスレだから、そろそろ話をC言語に戻そうよ
C++の話は専用スレでも立ててそこで継続してくれ
2018/12/22(土) 10:15:17.63ID:j02wAUXX0
iZ-Cは魅力的なAPIがいっぱいだよ。
2018/12/22(土) 11:12:54.97ID:BR4LVxYj0
新設するまでもなくC++のスレッドも複数あるからなぁ。
濃いネタばっかりで「C++はいいぞ、早くCから移行しろ」程度じゃ
相手にしてもらえないレベルだと思うけど。

…いや、俺も理解できてるわけじゃないがな。
2018/12/22(土) 11:51:34.32ID:aSH6WKCWa
Cでオブジェクト指向っぽく書くと継承しなくていいのがいいよね。
冗長にはなるけど。
2018/12/22(土) 12:11:28.34ID:q6a6sTJo0
OOP自体が間違い。OOP書きたいのにC使うのは間違い中の間違い。
2018/12/22(土) 12:26:28.69ID:1IcOSx0Ja
>>718
じゃあどう書くわけ?
デザインパターンを常に排除すんの?
2018/12/22(土) 12:55:54.08ID:FB4FQRnX0
関数の第一引数を構造体にするならファイルポインターもオブジェクト指向に
なっちゃうからな。
仮想関数テーブルとかつくっちゃってるのかな?
2018/12/22(土) 13:17:52.98ID:GdiBSH+o0
昔CでのOOPが流行った頃は「オブジェクト指向=継承」みたいな捉え方が主流だったから
構造体にvtable持ってピギーバックで継承して、って感じだったな。
2018/12/22(土) 13:20:28.89ID:ruBkeT7Z0
>>717
それは一理ある。

俺自身はCもclass構文を取り入れるべきだと思っているが、実際そうならないのは、

・分かっている奴が書けば何とかなる

からなのも事実だ。
そして「継承」が無駄に嫌われているのは、Javaでは関数ポインタを提供しなかった為、
継承を使うべきでない局面で使われまくり、余計に意味不明になる事が多かったからだ。
デザインパターン自体がバッドプラクティス集なのもそのせいだ。
あれも本来は「第一級関数」を持つ言語で書き直し、
既存のJavaで書かれたデザインパターンは老害ゴミとして捨て去られるべきなのさ。

ただ、本来「継承」を用いるべき局面については当然「継承」の方がフィットするわけで、
Goみたいに

× 継承に代わる便利なものを用意したから継承が不要となった
○ ただ単に継承/仮想関数を排除しただけ

の言語は完全に乗り遅れてる。あれならCで書いても同じだし。
(Goは元から80年代の言語だと揶揄されていたが、全くその通りだった)

とはいえ、Goを作った連中は君と同じ感覚なのだろうとは思う。
君はGoを気に入るかもね。
2018/12/22(土) 13:27:38.05ID:nwnvhQAlM
> 本来「継承」を用いるべき局面については当然「継承」の方がフィットする

設計時どれだけそう思い込んでいても、のちに覆され得る。それは設計時には知り得ない。
単純に継承のことは完全に忘れ去ってしまうべきである。
そんなものは無かった。
2018/12/22(土) 13:50:48.44ID:Hmvw7Yp+M
老害ゆとりのvoid君
相変わらず言ってる事が支離滅裂で草
2018/12/22(土) 13:56:16.04ID:BEf9L/k+M
void君がよく「ゆとり」連呼してるけど
彼本人はどうなん?
発言内容からはキャリアを感じさせないし
そもそも年齢もせいぜい35くらいじゃないの?
2018/12/22(土) 13:59:01.93ID:Ym27DU080
カサブランカの世界だな
2018/12/22(土) 14:00:34.13ID:IG9dO8ZOa
>>721
そうね。便利なマクロ用意したら結局それC++じゃんみたいな。
無遅刻無欠勤がとりえでコピペの手間を厭わないsubversion大好きかつ注意深い人達が作った、再利用を全く考えないワンオフ物の超巨大クラス構造みたいなの見ると、継承は初めから無い方がいいなと思うよ。ほんとつらい。
2018/12/22(土) 14:03:16.29ID:ruBkeT7Z0
>>723
まあ実際それをやったのがGoな訳で。そう思う人がいるのも事実だろうさ。
(俺はGoはポシャると思っているけど)
2018/12/22(土) 14:26:09.40ID:9V9oS+990
>>717
書き方次第だよ。linuxで最も有名なライブラリの一つであるglibは継承してるし
2018/12/22(土) 15:34:01.41ID:ghZDfTzQ0
空想論の域を出てないなあ
2018/12/22(土) 21:50:01.34ID:H4+WRP2A0
死にたい
2018/12/22(土) 21:56:40.29ID:Op/4E6E/d
死にたいのは何かが足りないから。

その何かを探しに旅行へ行こう。

旅人は旅に旅立つ。
2018/12/22(土) 22:42:35.80ID:Ym27DU080
片道切符に誘うのやめろ!
2018/12/23(日) 01:05:41.98ID:vlmCWjWkM
Cの世界へ逝こう
735デフォルトの名無しさん (ワッチョイ 9b9f-t5R+)
垢版 |
2018/12/23(日) 11:39:57.84ID:nNQ759QC0
>>731
Cぬな
2018/12/23(日) 12:16:27.31ID:qYRfL2gu0
全てがCになる
2018/12/23(日) 12:39:52.20ID:nNQ759QC0
С
2018/12/27(木) 23:00:48.46ID:1iKhYige0
全てがFになる
2018/12/27(木) 23:16:13.58ID:fn4IYFyt0
そして、全てはぬるぽ
2018/12/27(木) 23:48:52.00ID:59YrudQc0
>>738
冷密=「冷たい密室と博士たち」の方が好きです他は雰囲気ワードを散りばめただけのどちらかというと駄作に見えてしまうのですが、唯一これは極上のロジックだと思うのです
2018/12/28(金) 06:05:14.46ID:4iocbykD0
このスレで全てがFつーたら、-1のことだろ
742デフォルトの名無しさん (アウアウウー Sa39-Z33a)
垢版 |
2018/12/28(金) 09:26:28.29ID:Bx5qAOnaa
255もよろしく
2018/12/28(金) 17:38:41.28ID:SNiJRt+t0
#defineを使って関数を定義するテクニックがあります

#define kansuu() (ここに関数の内容を書く)

一時的にその関数を無効にしたいときはどうしたらいいでしょうか?

#dfine kansuu()

こんな感じにkansuu()以降を空白にしておくのがいいですか?
2018/12/28(金) 17:40:24.93ID:FW6v28vq0
#define kansuu() (いっぱい書いてる)

#undef kansuu
#define kansuu()
2018/12/28(金) 17:54:33.91ID:4iocbykD0
void kansuu(void)
{
ここに関数の内容を書く
}

#define kansuu() (ここに関数の内容を書く)

int main(void)
{
kansuu(); //マクロ
(kansuu)(); //関数
}
2018/12/28(金) 23:36:56.58ID:le4HGTEI0
よくあるdebug printfのアレじゃね
2018/12/29(土) 00:42:29.78ID:bhEXf4Rq0
>>744
> #define kansuu()

kansuu()の後には何も記述しないのが正しいスタイルってことですね

>>745
関数とマクロ、そういう使い分けができたんですか・・・
2018/12/29(土) 10:25:00.95ID:PBX00OFRa
-Dじゃあかんのか?
749デフォルトの名無しさん (アウアウウー Sa39-Z33a)
垢版 |
2018/12/30(日) 17:16:13.69ID:i7KTb38La
いいんじゃないか?
コンパイラのコマンドがどう解釈するかに掛かってはいるが。
2018/12/31(月) 21:39:38.58ID:MpZmteVw0
よくやるのは
#ifdef HOGE
#define func() ここに処理
#else
#define func()
#endif
で、-DオプションでHOGEの定義を切り替える。
好みや宗教により#ifdefを#if definedにしたり、HOGEの値により分けたり、プリプロセッサを使わず処理のifで分岐したり。
2019/01/01(火) 01:03:53.24ID:JA4reBf90
初心者です。
あけましておめでとうございます。
本年もよろしくお願いいたします。
2019/01/02(水) 20:01:12.90ID:RordgnsG0
かっぱらいプログラム言語と言うのが出来そうな予感がした。
2019/01/03(木) 09:41:01.80ID:MUpMksOg0
Linux環境のデバドラと組み込みの違いって何ですか?
2019/01/03(木) 10:32:23.68ID:H9RYMXki0
デバイスドライバというのはデバイスをドライブするプログラムである。
組み込みというのはまあ特定の製品を制御するための専用のシステムである。専用というのはつまり汎用ではないということで、要はPC向けではないということである。
2019/01/03(木) 10:38:18.81ID:MUpMksOg0
>>754
ありがとうございます!
756デフォルトの名無しさん (アウアウウー Sa9d-KJeM)
垢版 |
2019/01/03(木) 16:57:06.44ID:38Nc8DQPa
LinuxならLinuxに合わせた形でデバイスとのやりとりを作る必要があるが、そうでないならその辺は自由になる。
2019/01/03(木) 17:09:14.18ID:MUpMksOg0
>>756
なるほど
自分はLinuxに合わせて作ろうと思ってます
2019/01/03(木) 19:27:30.38ID:Gl0+wAUb0
そもそも組込み機器でLinux使うこともあるから>>753の質問自体がイミフなんだが
759デフォルトの名無しさん (ワッチョイ fb02-xhm2)
垢版 |
2019/01/03(木) 23:20:49.06ID:x5GCx+Ws0
まあ、組み込みとだけ言ってしまうとなんでもありになってしまうな。
Windows Embedded なんてのもあるし。組み込みだからといってOSがないとは限らない。
というか今となっては何も入ってない方が珍しいかな?
2019/01/04(金) 07:14:05.80ID:w3lkHMGF0
わざわざ「組み込み」と言う意味があるかどうかだな
ノートPCをロボットの脳として搭載することもできるが
OSがWindows10 Homeじゃ組み込みとは言えないのか
761デフォルトの名無しさん (アウアウウー Sa9d-KJeM)
垢版 |
2019/01/05(土) 18:26:16.82ID:pJbMq/2ja
今じゃ小さいの幾らでもあるからなんでも組み込みにできるな。
コストと耐久性の問題はあるが。
2019/01/06(日) 21:17:49.87ID:LPav389N0
一時はECUなど特定の分野を除いて組み込みもLinuxに席巻されそうになっていたけど、最近のIoTブームのせいか超小型超低消費電力のマイコンのニーズが高くなり昔ながらの職人芸的組み込みソフトが復権してきてるイメージあるわ。
2019/01/06(日) 21:36:48.83ID:rMmabB99a
まあプログラムはむしろ楽だね。
貧弱なプラットフォームの方が。
2019/01/07(月) 06:58:10.64ID:k1Vvc+OE0
PICなんかを使った、電子工作の延長みたいな
「Cでもプログラムできるワンチップ」ていうジャンルも
盛んになってるみたいだし。

あそこまで小さくなると、直接マシン語で考える方が
手っ取り早いような気がするわ。
2019/01/07(月) 17:11:01.86ID:Cio2TleD0
気がするんではなく実際そうだ
あれはアセンブラで使うもの
2019/01/07(月) 17:19:52.92ID:YLZmdTQx0
アセンブラで出来てC言語で出来ないことがイマイチわからないです。
なんか具体的な例などあれば・・・
2019/01/07(月) 17:22:48.61ID:ArcgbVcT0
C言語使う為には最低限コンパイラが動く環境を
用意しないと行けないが
アセンブラは比較的簡単に実装できる
いざとなったら16進で入力すれば良いし
2019/01/07(月) 18:58:49.76ID:YLZmdTQx0
>>767
なーるほど!コンパイラがいらずでCPUやメモリ使えるってことですね!
それは確かに便利だありがとうございます。初めてアセンブラの利用価値に合点がいきました。アセンブラわからないですが(´・ω・`)
2019/01/07(月) 19:01:38.90ID:c5u8F3uW0
>>766
自己書き換えプログラム、とかはどうですか?
2019/01/07(月) 19:06:52.70ID:ArcgbVcT0
8ビットCPUの頃はやった事あるけど
今のCPUだと難しいのではないかな
2019/01/07(月) 19:13:29.39ID:Cio2TleD0
真のハーバードアーキテクチャだとな
2019/01/07(月) 19:20:28.86ID:aW5a0RDY0
コンパイラが要らなくてもアセンブラは必要なものじゃないの?
2019/01/07(月) 19:34:19.06ID:VIu/Fipc0
>>772
8bit時代、サブルーチン程度ならニーモニックどころかダンプ直打ちしてた基地外もいた
2019/01/07(月) 19:41:40.02ID:0y/PgDfv0
おっさん世代はZ80ぐらいなら主要なニーモニックは未だにヘキサで覚えてる。
2019/01/07(月) 21:33:52.93ID:Cio2TleD0
>>773
ごめんな
コーディング用紙つかってた
I/Oの鬼ダンプとか今でも思い出すよ
2019/01/07(月) 21:46:22.29ID:E11lC+b50
このスレの平均年齢いくつなの……w
777デフォルトの名無しさん (アウアウウー Sa9d-KJeM)
垢版 |
2019/01/07(月) 21:58:59.48ID:fnTlHl64a
>>768
それだけでなく本当にCだけではできない事があるのが普通だ。CPUにもよるけどね。

何か特定のレジスタに値をセットしないと何かの機能が使えないみたいな場合はCではレジスタの指定をして値をセットすることができないので最低でもその部分だけインラインアセンブラにしたり全部アセンブラで書いたりする(またはそれ用に拡張がされたCコンパイラを使う)。

その他、80系やx86系ってI/Oポートあるが、あれはCからはアクセスできないのでその部分はアセンブラにする。

まあしかしそういうのはほとんどデバイスドライバの中で必要になる事なので普通は一般ユーザは考えなくてもよくなっている。
778デフォルトの名無しさん (アウアウウー Sa9d-KJeM)
垢版 |
2019/01/07(月) 22:02:17.91ID:fnTlHl64a
>>773
それ昔は普通に居た。何せアセンブラなかったりあっても高かったりで使えないことが多かったからな。

>>774
3E 00   LD A,0

のような。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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