- 1 名前:デフォルトの名無しさん [2020/09/28(月) 14:41:30.00 ID:QxfbhGyV0.net]
- !extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください) C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ 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言語なら俺に聞け 155 https://mevius.5ch.net/test/read.cgi/tech/1589120427/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 447 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 05:28:43.74 ID:kVhO/tYW0.net]
- >>442
> ケースバイケース言いたいだけだったのかw 言いたいだけって言うかそれ以外に言いようがないだろw マジで言ってるならプログラマー失格レベル
- 448 名前:デフォルトの名無しさん [2021/01/06(水) 07:24:13.29 ID:bGGeDo6wM.net]
- アプリケーション開発しかやったことないのでシビアな状況のプログラムってのがよくわかってないけど
通常のプログラムだったらNULLが帰ってきたら終了だろうね 失敗が許されない環境で、もしメモリを使い果たして確保できないような状況の場合は失敗が許されないのにメモリを使い果たすようなプログラム自身を改善した方が良いような ファイルから必要なデータだけを読み込むようにして使い終わったメモリは開放するとか メモリを使い果たして無いのに失敗する可能性とかだったら、標準関数の正常な役割が信用できないという事になるのでプログラム言語自体使えなくなるよね C/C++だけじゃなくて それならアセンブラで直接書くしか無くなるのでは この場合だったら「たらーれば」の言いがかりにしか聞こえないけど
- 449 名前:はちみつ餃子 mailto:sage [2021/01/06(水) 09:52:33.41 ID:NVCaEro60.net]
- そこんところはホスト環境・開発システムがどこまで保証するかという話になるので、
各環境で十分な保証があるなら使えばいいし、保証がないなら使えないというだけのことでは。 私も実態を知ってるわけじゃないが組み込み開発だったら 実際には保証というか自分たちで検証することも多いと思うが。
- 450 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 15:10:46.82 ID:6EEBy3Y5d.net]
- Linux系にはヒープの上限を設定できないの?
よくある入門書にはnewで敵キャラでもエフェクトでも作って動かしましょうみたいなのがよくあるが それやって消すのを忘れると一日動かしてるとかなりの容量になり突然システムが止まる 懐かしいシングルタスクOSの時代と変わらんw Win16や32だとローカルヒープは上限があって一杯になってもアプリが止まるだけでシステムは続行できた
- 451 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 15:49:09.66 ID:kVhO/tYW0.net]
- >>447
> Win16や32だとローカルヒープは上限があって一杯になってもアプリが止まるだけでシステムは続行できた それはプロセス単位の制限だろ、man ulimit でググってこい OOM Killerとかはシステム全体の話な
- 452 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 16:05:04.01 ID:QohpZ5Jnd.net]
- >>446
Cスレだから組み込み系が話題の中心だと思ってたが PCのアプリをCで書くなんて人がいまだにいるの?
- 453 名前:はちみつ餃子 mailto:sage [2021/01/06(水) 17:27:30.00 ID:NVCaEro60.net]
- >>449
ロジック部分を C で書くことはもうあまりないかもしれんが、 低レイヤや速度チューニングがなくなるわけではないからなぁ。 コードの総量に C が占める割合は少ないにしても C が (一部には) 使われているものはまだまだあるんじゃね?
- 454 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 17:33:29.06 ID:QohpZ5Jnd.net]
- アプリの速度チューンならC++で良いと思うんだが
なぜC?
- 455 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 18:33:49.31 ID:m3At07SYM.net]
- >>447
ulimit -d でできるぽいね
- 456 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 18:53:37.18 ID:kVhO/tYW0.net]
- >>449
LinuxのカーネルとかApacheとか未だにC言語は残ってるよ 新規は少なくなっていくだろうけどCOBOLと同様にメンテでは当面使い続けられると思うぞ
- 457 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 19:00:16.49 ID:A7AJXFBH0.net]
- カーネルがmallocで失敗???
システムごと死ぬだろ
- 458 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 20:05:41.96 ID:6EEBy3Y5d.net]
- >>448
だからアホなアプリ一個でシステムが止まるなんて前世紀の話か?と聞いてるんだよね それともここはシステム関連の話だけか? mallocの仕組みもしらずにシステムいじろうなんて命知らずの人だねw >>452 シェルコマンドじゃなくて このアプリちょっと試してみてよ、と他人に渡した時に行儀よくできるような言語自体のオプションはないものかな mallopt()が近いみたいだけど英語ドキュメントしかないや
- 459 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 20:50:30.31 ID:kVhO/tYW0.net]
- >>455
> だからアホなアプリ一個でシステムが止まるなんて前世紀の話か?と聞いてるんだよね だから OOM Killer でググってこいよ システムを止めるかどうかは設定によるし、Windows でもメモリー逼迫したら不安定になるから > シェルコマンドじゃなくて https://linuxjm.osdn.jp/html/LDP_man-pages/man2/setrlimit.2.html そもそもシェルから設定できるのにプログラムから設定できないわけ無いだろ プログラマーの素養なさ過ぎ
- 460 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 20:52:54.12 ID:3ZsNazx6d.net]
- C言語なんだから無条件でPC前提にするのやめようぜ
- 461 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 20:58:31.92 ID:3ZsNazx6d.net]
- Windowsでも
プロセスとスレッドのプライオリティを上げて メモリを大量に使えば スワップしまくって激重になって 事実上システムが死ぬけどね
- 462 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 20:59:44.32 ID:3ZsNazx6d.net]
- アプリ1個でシステムダウンさせるのはそれほど難しくない
- 463 名前: mailto:sage [2021/01/06(水) 21:09:38.92 ID:yUU4KxYw0.net]
- >>459
さすがにそれは不可能では?win3.1 ならまだわかるのですが‥‥
- 464 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 21:12:39.72 ID:3ZsNazx6d.net]
- プライオリティの高いスレッドをたくさん作って無限ループすれば死ぬ
- 465 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 21:17:12.89 ID:3ZsNazx6d.net]
- プライオリティ31のスレッドを論理コア数分作ればマウスカーソルも止まる
- 466 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 22:06:17.54 ID:FKs+KUNY0.net]
- 間違えてforkしまくるスクリプト実行してしまって何もできなくなった
- 467 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 22:06:21.76 ID:6EEBy3Y5d.net]
- いや別に知恵を絞って無理に止める話はしてないじゃんw
うっかりミス程度で止まったらおそろしいなあ気楽にプログラミングもできないなあって話
- 468 名前:デフォルトの名無しさん mailto:sage [2021/01/06(水) 22:38:40.29 ID:g4fxgipO0.net]
- うっかりシステムをフォーマットしてしまうこともあるしな
- 469 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 00:44:03.16 ID:Vx7SD3qO0.net]
- うっかりプライオリティの高いスレッドをいっぱい作っちゃった場合の話
- 470 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 02:16:41.45 ID:yeIMGQh50.net]
- 何の話してたか忘れた
- 471 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 15:11:57.86 ID:9QJGSme00.net]
- mallocを使っていても総使用量の最大は見積もっとけって話
- 472 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 16:20:03.10 ID:DL1zbij8d.net]
- 総使用量に対してメモリが十分あっても
フラグメントで確保出来ないかもしれない
- 473 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 17:22:12.04 ID:6v7F/BUW0.net]
- malloc をラップして
オレオレアローケーターで一括で確保して使いまわそうとすると malloc の実装とほとんど変わらんよな?って気分になる
- 474 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 17:32:32.97 ID:DL1zbij8d.net]
- 固定長が多ければ専用化の価値が大きい
- 475 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 17:50:56.57 ID:9QJGSme00.net]
- >>469
malloc実装してみな フラグメントなんてどんな程度の問題かわかるから
- 476 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 19:23:46.37 ID:jTCzKEfy0.net]
- とあるスコープ内だけで有効なヒープで、さらにスコープから抜けると開放したい
という用途でがんばった
- 477 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 20:07:04.52 ID:b6arBunA0.net]
- 何十日何百日稼働するソフトならそれなりに効いてきそうだけど<フラグメント
- 478 名前: mailto:sage [2021/01/07(木) 20:08:45.38 ID:gAnZzjje0.net]
- >>473
alloca()
- 479 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 20:19:01.01 ID:jTCzKEfy0.net]
- >>475
ほしかったがなかったのだ
- 480 名前: mailto:sage [2021/01/07(木) 21:26:54.87 ID:gAnZzjje0.net]
- >>476
C にはデストラクタがないから、C の範囲で実現するのは困難ですね alloca() の実装は、ライブラリだけでは処理できずにコンパイラ側の支援が必要だと思いますので、標準ライブラリには入りにくいでしょうね
- 481 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 21:43:59.65 ID:jTCzKEfy0.net]
- >>477
longjmp は対象外とし 完全自動は諦めてスコープの外に回収関数を置く紳士協定で手打ちに
- 482 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 00:02:52.02 ID:RWydUoCr0.net]
- >>472
フラグメントで確保出来ない事があったわけだけど
- 483 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 00:51:10.08 ID:aEO+ezsE0.net]
- 使ってるアロケータの実装が何なのか, とどう使っているか示さないと何の意味もない
K&R mallocに毛が生えた程度のmalloc (Tronとか)ならものすごい勢いで断片化するし glibc mallocとかのbest fitアロケータを使う分には断片化はかなり起こりにくい あとメモリリークじゃないことは間違いないんだよね?
- 484 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 05:16:18.16 ID:gKD5AY0L0.net]
- >>479
>>388を再度問う
- 485 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 08:53:26.45 ID:/42fFLGad.net]
- C言語スレなのに組み込みやったことないヤツばっかりってのが不思議
>>480 アロケータの実装次第で断片化がおこる と自分で書いてるわけだ それが答え どんな優れたアルゴリズムでも 断片化はおこるんだけど 完全に未来が予測出来る神アルゴリズムでも
- 486 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 09:11:57.78 ID:yPaAOWPid.net]
- Go/C/C++以外に直接システムコールしてる言語ってありますか?
- 487 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 09:18:29.89 ID:/42fFLGad.net]
- アセンブラ
- 488 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 09:37:02.14 ID:MUX0m4u5M.net]
- c/c++もアセンブラ使わないとシステムコール呼べないけどな
- 489 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 12:03:05.57 ID:lqJPJl/10.net]
- CALL 5 が使える言語は全部大丈夫
- 490 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 12:52:43.97 ID:0DW9z0rLM.net]
- >>486
call 5って何のこと?
- 491 名前:はちみつ餃子 mailto:sage [2021/01/08(金) 14:24:17.01 ID:PuoTeu6a0.net]
- >>477
VLA があれば alloca は要らん。 上限が見積もれないときはいずれにしても使うべきではないが……。
- 492 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 14:34:20.89 ID:NkKDsd1u0.net]
- CALL 5ってシステムコール一般の事を指してるのかな?
CALL 5はCP/Mから引き継いだMS-DOSのファンクションコールか ふつうMS-DOSはINT 21Hって内部割り込みつかってたけどCALL 5もできたそうな
- 493 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 15:15:28.39 ID:/42fFLGad.net]
- 直接システムコール
の定義によってはどの言語でも出来るし 定義によってはどの言語でも出来ない 質問者は定義を明確に
- 494 名前: mailto:sage [2021/01/08(金) 19:43:55.15 ID:cUApPko30.net]
- >>488
でも VLA は C++ では非推奨でしょう? というか C であっても VLA の格納位置がスタックなら、それこそ悪意を持つクラッカに格好の餌をやっているとしか思えません‥ C99 or later では「VLA の確保場所をスタック禁止でヒープとする」という縛りはあるのでしょうか?
- 495 名前: mailto:sage [2021/01/08(金) 21:47:27.82 ID:cUApPko30.net]
- >>491,448,477
いろいろ調べたところ、私が間違っていることがわかりました、つまり alloca() はスタックに配列を確保する実装とのことだそうです つまり alloca() は setjmp/longjmp と同じ「C で記述できない」関数ということになりますね‥‥
- 496 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 22:26:35.55 ID:gKD5AY0L0.net]
- だからこそ標準に組み入れられているんだよ
非標準でどうしろと言うのか考えろ
- 497 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 13:37:23.88 ID:lvRTpcj70.net]
- アセンブラで作ったサブルーチンをそうとは知らずに呼べるのはCの良いところ
- 498 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 14:13:13.77 ID:wanRtpand.net]
- それだけならC++でも
- 499 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 16:16:23.92 ID:fHVxD+CU0.net]
- 知らずに呼べるって、それアセンブラ側でC呼び出し規約で書いてあげたからじゃね。
- 500 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 16:42:31.78 ID:lvRTpcj70.net]
- ABIちゅーもんがあってだな
- 501 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 17:00:45.39 ID:fHVxD+CU0.net]
- だからそう言ってる。Pascal規約で書けばPascalから呼べたり。
- 502 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 17:08:25.76 ID:L3ZBilIB0.net]
- フルアセンブラなら
パラメーターの渡し方は自由 独自のスタック構造だろうが レジスタだろうが 臨機応変に出来る 今時フルアセンブラなんて事は非常に稀で C/C++の呼び出し規約に従うのが普通 というだけ
- 503 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 17:10:33.54 ID:L3ZBilIB0.net]
- 今でも超小規模マイコンだと関数コールの構造をとらないフルアセンブラコードを使う事がある
- 504 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 17:52:11.58 ID:lvRTpcj70.net]
- __declspec(naked)とか__attribute__((naked))とか
- 505 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 18:48:02.08 ID:fHVxD+CU0.net]
- それexternで宣言できないから、アセンブラで書いたルーチンを呼ぶためのものじゃなくて
従来アセンブラを使わないと書けなかったルーチンをCのインラインアセンブラで書くためのものじゃね?
- 506 名前:デフォルトの名無しさん [2021/01/09(土) 19:47:19.13 ID:gjIQ6YZR0.net]
- 純粋なC言語プロジェクトとして作るより
C++プロジェクトとして作ってCコードを書いた方が 利用可能なライブラリが増えるしほぼ上位互換、という考えは合ってる?
- 507 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 19:51:04.00 ID:Z+DmrKyh0.net]
- >>503
それ多分C++コードだと思う
- 508 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 20:16:57.05 ID:kPw1IBO30.net]
- >>494
それができない言語の方が珍しいと思うけど?
- 509 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 20:17:11.62 ID:OS8QkCVT0.net]
- C++のベターC的な使い方であってpureなCとうまく連結できるかというと…
- 510 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 20:18:36.46 ID:kPw1IBO30.net]
- >>503
合ってる、いわゆるベターCって奴
- 511 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 21:18:21.63 ID:lvRTpcj70.net]
- DLLなんかどこの馬の骨言語/コンパイラ/アセンブラで作られたかもわからんものを当たり前に使えるだろ
- 512 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 22:58:21.36 ID:L3ZBilIB0.net]
- それはDLLで呼べるように作ってあるからであって
- 513 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 23:00:18.51 ID:L3ZBilIB0.net]
- 別にCの特徴でもない
- 514 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 23:45:25.11 ID:kPw1IBO30.net]
- 大抵の言語はDLLを呼び出す側になれるけど、呼ばれる側になれる言語はそんなにない
- 515 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 23:52:15.63 ID:lvRTpcj70.net]
- 普通にCでDLL書くぞ
- 516 名前:デフォルトの名無しさん [2021/01/10(日) 16:59:27.49 ID:97ZwT7Zl0.net]
- 言語はOSに依存している。
- 517 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 17:02:58.26 ID:N5z3vzVP0.net]
- OSのない非常にチープな環境でも動くのがCの特徴
例えばRAM 16バイト、ROM 256命令みたいな糞CPUでも動く リッチな環境ならCなんか使わん
- 518 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 17:07:41.53 ID:rshCbxDT0.net]
- >>514
> 例えばRAM 16バイト、ROM 256命令みたいな糞CPUでも動く 具体例plz.
- 519 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 17:12:34.41 ID:N5z3vzVP0.net]
- PIC10F200
- 520 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 17:29:30.48 ID:rshCbxDT0.net]
- >>516
ありがと、一応コンパイラもあるのね
- 521 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 04:19:33.81 ID:aEPvAJq60.net]
- そんくらいならCよりアセンブラの方が楽そうだけど
- 522 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 09:26:06.49 ID:yw8V+8is0.net]
- この規模でもアセンブラの方が楽って事はない
当然性能やリソースに問題がないならCの方が楽 楽をしたいなんて考える人が選ぶCPUではないけど
- 523 名前:はちみつ餃子 mailto:sage [2021/01/11(月) 09:57:05.78 ID:MiJ5pxpq0.net]
- PIC は CPU なのか?
と思ってデータシートを見たら RISC CPU って書いてあったわ。
- 524 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 10:16:28.83 ID:RSMcM3e30.net]
- >>518
まあさすがにROM 256だとCで書くのはあまり現実的じゃないわな
- 525 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 10:28:09.66 ID:dLrb5ZQk0.net]
- >>519
コンパイラが相当なじゃじゃ馬だと 調教する(というか、こっちがされるw)のに 結構な手間暇かかったりするんだよ
- 526 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 12:12:48.66 ID:yw8V+8is0.net]
- >>522
PIC(というか8bit全般)は 命令やアーキテクチャがじゃじゃ馬 Cのじゃじゃ馬とは比べ物にならん 開発環境構築はCもアセンブラもかわらん
- 527 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 12:23:14.39 ID:dLrb5ZQk0.net]
- Cのじゃじゃ馬を調教するにも結局アセンブラを理解する必要があるからな
アセンブラのじゃじゃ馬だけで済むならそっちの方が楽だろ
- 528 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 12:30:40.51 ID:4UZaL5drd.net]
- アセンブラを理解する必要なんて無いよ
- 529 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 12:34:47.00 ID:dLrb5ZQk0.net]
- あるよ
Cに対するよくある誤解で、 アセンブラから逃げるためのものではなく アセンブラもわかる人が手抜きするためのものだ そもそもアセンブラで書かれていたUnicsを書き直すために作られたツールだしな
- 530 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 12:37:16.69 ID:4UZaL5drd.net]
- >>526
いつの時代の人?
- 531 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 12:37:56.75 ID:4UZaL5drd.net]
- 楽かどうか
から話が変わってるし
- 532 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 12:54:40.32 ID:RSMcM3e30.net]
- 256程度に収まるコードならアセンブラでもそんなに苦労しないと思うよ
- 533 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 13:03:17.58 ID:4UZaL5drd.net]
- でもアセンブラの方が楽
って事はない
- 534 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 13:04:29.37 ID:yw8V+8is0.net]
- そもそも楽をしたいならこんな糞CPUをわざわざ選ばない
- 535 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 13:31:51.18 ID:COmzXB920.net]
- Cコンパイラの吐き出す最適化済みのコードを人力でできればよいのだが なかなか ね
- 536 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 14:40:26.73 ID:dLrb5ZQk0.net]
- CはISO/IEC規格で「こうでなければならない」という決まりがあるが
アセンブラにそんなものはない 初めて触るCPUは多かれ少なかれ、それまでに蓄積した偏見に逆らうところがあり あんまり迂闊にじゃじゃ馬呼ばわりすると他の人や未来の自分にアホにされる たとえばPICならPICが向かない用途にPICを使おうとしたり その逆をやらかすやつは気をつけたほうがいい
- 537 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 14:55:18.12 ID:yw8V+8is0.net]
- 要するにCのが楽
- 538 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 18:03:00.86 ID:T9p+a0He0.net]
- >>500
関数コール構造ってスタックか?
- 539 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 19:17:14.19 ID:3OtB0f6U0.net]
- 組み込みだとデバッグしやすいようにサブルーチンの引数はグローバル領域に置くとか
リターンアドレスも同じようにグローバルに置くとかあったな。
- 540 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 19:22:32.27 ID:exQc5JPEM.net]
- 呼出規約
https://ja.wikipedia.org/wiki/%E5%91%BC%E5%87%BA%E8%A6%8F%E7%B4%84
- 541 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 21:38:48.2
]
- [ここ壊れてます]
- 542 名前:5 ID:dLrb5ZQk0.net mailto: > デバッグしやすいようにサブルーチンの引数はグローバル領域に置く
COBOLer乙 [] - [ここ壊れてます]
- 543 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 22:18:26.34 ID:3OtB0f6U0.net]
- COBOLみたいな高級言語の話じゃねーよw
- 544 名前:デフォルトの名無しさん [2021/01/12(火) 15:17:22.63 ID:XXwzvzv60.net]
- 標準ヘッダファイルの関数の実際の処理コードってどこに書いてあるんですか?
ぼく「rand関数ってどんな処理すんの?」 無能教科書「stlib.hに書いてあるだよ^^」 ぼく「ほーんstlib.hはWindowsだとここのフォルダに置いてあるのか」カチカチ ぼく「Visual Studioで開く」 ぼく「ってプロトタイプ宣言やんけ!本体の場所は?」 って感じで困惑してるんですががが?
- 545 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 15:20:38.53 ID:aoRXfngS0.net]
- 特にコレといった決まりはないので ランタイムライブラリのソースがあればラッキー程度
- 546 名前:デフォルトの名無しさん [2021/01/12(火) 15:21:37.16 ID:XXwzvzv60.net]
- ていせい
X stlib O stdlib
- 547 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 15:24:49.50 ID:aoRXfngS0.net]
- <Program Files>/Microsoft Platform SDK/src/crt
にあればラッキー
|

|