Размер видео: 1280 X 720853 X 480640 X 360
Показать панель управления
Автовоспроизведение
Автоповтор
C言語の歴史的背景を勉強したわけじゃないけど使ってみた感覚としてC言語ってアセンブラを分かりやすくして、レジスタを操作をしなくて良くしただけで本質はメモリを直接操作する言語。文字列はそこに勝手に利用者がnull文字を付け加えて文字列として扱ってるだけって感覚。配列も数や文字をまとめる仕組みじゃなくてメモリアドレスをまとめて操作するための仕組みな気がする。結局どこまで行ってもメモリ操作でしかない。その分、必要最低限の処理で軽い。他の言語はソースに書いたプログラムに自動的にメモリの割り当てをするプログラムが含まれてるからうまく噛み合わなかったりすると遅くなる。
メモリが近すぎてエンディアン見えるのが個人的にだるいポイント共用体ぶち込まれるとキレそうになる
現代の私達がRustやZigなどを指示している一方で、OpenBSDの開発者たちがC言語でなんとかしてなんか安全なツールとかライブラリとかOSとかを作りまくってるのって報われる努力なんでしょうか
勉強になりました!
Windows上では独立したメモリ空間をプログラム毎に自動で割り当てるからポインタの危険性は想像する以上に低い。せいぜい自分の作ったプログラムがエラーを起こすだけで済む。
古いCランタイムは一切使っちゃだめですよね。strcpy_sなどのサイズ指定可能なものに全て置き換えないといけません。そもそも最新のコンパイラに警告またはエラーで怒られちゃいますけどね。
C/C++を勉強していますが、怖くなってきました…。
サムネ、インド人で草です
C言語は、全ての言語、アルゴリズム等のベースとなる言語。C言語がなければ他の言語は生まれてこなかったでしょう。C言語が脆弱性をうみやすいのは否定しないが、それの原因は作る人間側の話。メモリ空間を操作できるのが悪いような印象を持ったけど(間違ってたら、ごめん)、他の言語では隠蔽されているだけの話。大きな考え違いをしているのでは?あと、メモリ空間を操作できなければ、効率の良いアルゴリズムはできない。もし否定する人がいれば、フルのネットワークスタックをC言語以外で組んでみてもらいたいものである。できれば、有名になれるだろう。
考え違いをしているのはあなたですね。不要な部分を触れる設計は良くない設計です。ましてや触らなければならないのは論外です。
Windows XP時代にまだろくにPCに詳しくなかった時、大学で初めてUNIXでC言語させられたけど#includeとstdio.hとか意味不明だったな。で?これで何ができるのかみたいな。個人的は目に見えるWeb系のHTMLから初めてPHPやpythonやる方が理解しやすくてプログラミングってこんなところでこう動いているんだなって分かる。
その段階で意味不明なのはC言語のせいじゃないっすね
@@kazuselen ライブラリとかインクルードするとか、そういう意味がわからなくてプログラミングを挫折した。
C言語の歴史的背景を勉強したわけじゃないけど使ってみた感覚として
C言語ってアセンブラを分かりやすくして、レジスタを操作をしなくて良くしただけで本質はメモリを直接操作する言語。
文字列はそこに勝手に利用者がnull文字を付け加えて文字列として扱ってるだけって感覚。配列も数や文字をまとめる仕組みじゃなくてメモリアドレスをまとめて操作するための仕組みな気がする。結局どこまで行ってもメモリ操作でしかない。
その分、必要最低限の処理で軽い。他の言語はソースに書いたプログラムに自動的にメモリの割り当てをするプログラムが含まれてるからうまく噛み合わなかったりすると遅くなる。
メモリが近すぎてエンディアン見えるのが個人的にだるいポイント
共用体ぶち込まれるとキレそうになる
現代の私達がRustやZigなどを指示している一方で、OpenBSDの開発者たちがC言語でなんとかしてなんか安全なツールとかライブラリとかOSとかを作りまくってるのって報われる努力なんでしょうか
勉強になりました!
Windows上では独立したメモリ空間をプログラム毎に自動で割り当てるからポインタの危険性は想像する以上に低い。せいぜい自分の作ったプログラムがエラーを起こすだけで済む。
古いCランタイムは一切使っちゃだめですよね。strcpy_sなどのサイズ指定可能なものに全て置き換えないといけません。そもそも最新のコンパイラに警告またはエラーで怒られちゃいますけどね。
C/C++を勉強していますが、怖くなってきました…。
サムネ、インド人で草です
C言語は、全ての言語、アルゴリズム等のベースとなる言語。C言語がなければ他の言語は生まれてこなかったでしょう。
C言語が脆弱性をうみやすいのは否定しないが、それの原因は作る人間側の話。
メモリ空間を操作できるのが悪いような印象を持ったけど(間違ってたら、ごめん)、他の言語では隠蔽されているだけの話。大きな考え違いをしているのでは?
あと、メモリ空間を操作できなければ、効率の良いアルゴリズムはできない。
もし否定する人がいれば、フルのネットワークスタックをC言語以外で組んでみてもらいたいものである。できれば、有名になれるだろう。
考え違いをしているのはあなたですね。
不要な部分を触れる設計は良くない設計です。
ましてや触らなければならないのは論外です。
Windows XP時代にまだろくにPCに詳しくなかった時、
大学で初めてUNIXでC言語させられたけど
#includeとstdio.hとか意味不明だったな。
で?これで何ができるのかみたいな。
個人的は目に見えるWeb系のHTMLから初めてPHPやpythonやる方が理解しやすくてプログラミングってこんなところでこう動いているんだなって分かる。
その段階で意味不明なのはC言語のせいじゃないっすね
@@kazuselen ライブラリとかインクルードするとか、そういう意味がわからなくてプログラミングを挫折した。