C言語なら俺に聞け 144
レス数が1000を超えています。これ以上書き込みはできません。
己の創りたもうた世界に住人がいなきゃ
どんなにレベルだけ高くても神と呼んでくれる人がいない ハードなんかいくら発明したって、神になれる訳ないよ >>933
その場合は呼んでくれる人が居なくても最初から神に確定してるのでどうでもよい。
まあしかし夢の中では夢の世界を作ったのは自分なのに、その夢の中の登場人物は特に崇めてくれないのと同様に、本物の神は普通は崇められていない。 ん、俺はあくまで喩え話をしていたんだが
ガチの宗教論になってきたのか? 宗教論なら、gotoは悪とかreturnは関数末にひとつだけ論とかやろうぜ? 質問。
1/3を3回、6回、9回足し合わせる計算を単精度と倍精度でそれぞれ行うプログラムを作ったんだけど、
6回足したときの結果が単と倍で逆転しているような気がする
これってプログラムがおかしい?それともこうなるようになってる?
プログラム
https://imgur.com/ncjlu.jpg
実行結果
https://imgur.com/QpRfO.jpg >>940
10進数に直した時に小数点以下20桁ないからそうなるだけでは?
どちらも本当はだめなんだけどビット数の都合でうまいこと10進で丸まる事があるだけだと思うが。 >>940
これと同じなら10進数では小数点以下は15桁だ。
http://www.cc.kyoto-su.ac.jp/~yamada/programming/float.html 分数を実数で扱うからこうなる。
分数なら分数のまま、分子と分母が扱える型を使って計算しろ。 分数なら、Ruby の、Rational とか
浮動小数点は、常に誤差があるから、
正確な値は表せないから、== で比較もできない
また、式の順番を入れ替えたり、コンパイル時・実行時で、
同じ式でも値が異なるとか、とにかく実装依存 C使いにオヌヌメするならC++だろ
分数クラスはないが、標準にgcd関数があるから
小学校の算数ができる人ならすぐ自作できるし、
ratioなら翻訳時評価までできる >>930
紹介してる本は良いものだと思うけど、入手性はどう?
今でも新本で買えるのかな。
…いや、俺の経験じゃ古本屋ではついぞ見かけなくてね。 cでカーネルとか書いたことないからアレなんだけどmalllcとかfopenとかどうやって書いてるのかしりたい >>947
ターゲットのOS、CPU、コンパイラーのC実行時ライブラリー(C runtime; CRT)のソースを探せ。 malloc() の原理というか基礎的な実装方法は
『プログラミング言語C』で1章割いてた記憶がある。
まるまる1章じゃなかったかも知れんけど。
あとは「標準ライブラリのmalloc()は遅くて使い物にならん」と言って
でかいメモリブロックをひとつだけシステムから借り受けた後、
小分け部分は自前で管理する実装がネットのあちこちで紹介されてる。
TLSF とかいうアルゴリズム。 >>947
その辺は glibc とかがソース公開してるんじゃないかな。
でもそんなに難しくないよ。
ある程度わかってくると自作もできる筈。
既にあるので作る意味ないけどな。 >>951
その小分けの階層構造に愕然とはしなかったのか 若者はinetdのソースを是非読んで欲しい。
貧乏くさくて涙ちょちょぎれるぞ。 最近組み込みやデバイスドライバでもC++使われるのが増えてきたけど、Cの未来ってあるのかな? 縮小傾向はあるのでは?しかし、UNIX系OSが根強いから中々なくならんだろうけどね。
特に Linux が組み込み関係や Android で物凄く広まってほぼ定着してしまったからな。 組み込みLinuxやAndroidではC言語ってそんなに使われてないと思うが 例えば組み込みLinuxとして有名なRaspbianではPython、またAndroidではJavaが主流
直接カーネルでも弄るような特殊な事例を除けば、C言語でのアプリ開発なんか殆ど誰も行なわないだろ C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
つまりこういうことだ: C を選ぶのは、唯一のまともな選択だ。
ぼくは C よりも C++ をプロジェクトに使いたがるようなプログラマーは、みな
*本当に* ムカつかせておきたいようなプログラマーだという結論に達した。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。 >>962
FILE* は優秀
time_t とか struct tm は糞 >>963
そういった分野ではOS自体が必要無いしな
ファイルシステムやコンソール入出力が存在しない場合も多い
メモリと入出力ポートさえ直接制御出来さえすればいい
アセンブラに比べればC言語の方が主流ではある 「組み込み」て言葉を、プアなハードウェア環境をギリギリ限界まで使う、と
寸法は小さくても目的には十分以上の能力を持ったコンピュータ、と
両様の意味で使ってて議論がちぐはぐになってるように感じる。 選択肢がないと言うのは語弊がある
とことんまで高速性を追求するならアセンブラということになる >>961
ああ。アプリ開発ではCはほとんど使われてないだろうな。 OSそのものがCで書かれているからと言って応用アプリもCで書くのか? >>962
Linusと書いてなくても、元の英語のままでなくても内容からしてLinusが書いたとわかってしまうなw とことん高速求めるなら、FPGAでワイヤーロジック組めよ。 >>972
それはOSとは関係ないがLinuxの場合組み込み用のボードでよく使われている関係上使われる率は今のところ高いんじゃないかな。
Cだと最終的に作られる実行形式のバイナリが小さいというのもあるしね。 >>972
書くだろ
アプリと言うから違和感あるけど、制御プログラムなら今でもCは普通に使われてる まあしかしソースが公開されていて誰でも開発に参加できるOSがCで書かれているとなるとそのOSが使われ続ける限り最低でもそこでCが使われ続けるということだからCは消えないだろう。
俺の予想では別の言語をベースにして作った互換性のあるOSが爆発的に流行してLinuxやUNIX系OSを誰も使わなくなった時にCが完全に廃れると思う。なので100年以上先なのではないかな。
(途中time()の都合で改造が入るだろうが、それが元でOSごと全部廃れることはないと思う)。 ちょっと前のパソコンスペックのlinux機だって組み込みと言うし。 なんでパソコンってアプリケーションから書き換え可能なFPGAを搭載しないの?
その回路を使って光速で処理できるのに... 標準じゃないだけで
載せたければいくらでも載せられる プラス数万円程度のFPGAじゃあ性能なんてたかが知れてるだろう。
Intelがチップセットに内蔵するというならともかく。 ニコニコ動画かどこか忘れたけど動画の処理をFPGAに実装できるらしいけどあれって高いのかな >>983
数年前にドワンゴがFPGAかASICだか開発して販売するとか記事読んだ覚えあるわ
すっかり忘れてた
その後続報聴かんし >>979
FPGA は ASIC に比べると「遅い」 速くなるかはさておき、C/C++でのFPGA設計はRTLより楽ではある ふと「最近 \e ってネタ聞かなくなったなぁ」と思った。 ASIC って書き換え出来ないやん?
>>979 の意図で ASIC は無いと思うんだが >>989
だから FPGA は遅い、といっている セットアップ時間が掛かるって話と、応答速度がごっちゃになってるけど、わざと? ASICはApprication Specific ICというだけで、フルカスタムという場合もある
ただし、それだけが理由ではない
仮に自分とこがフルカスタムでも、それはIntelと同じ土俵に立ったに過ぎない
開発費を同等以上にかけられるとは限らないがね セットアップ時間の話なんかしてないと思うがな。
回路構成を変更できるようゲートアレイだから遅いと言ってるんだろう。 またアホがトンチンカンな事言ってるw
FPGAは論理合成された結果だけになるから
下手なロジック回路より速いんだぜ。 ASIC, FPGA, ゲートアレイの用語が混同されている気がする まさか、ASICは論理合成しないとでも思ってるのか。
>下手なロジック回路より速いんだぜ。
これも意味わからん。FPGAはロジック回路じゃないとでも?
それとも、いまどき「下手なロジック回路」をASICで作るとでも? そりゃFPGAでバグ取りした回路がASICになるんだからだろ? このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 58日 2時間 58分 23秒 レス数が1000を超えています。これ以上書き込みはできません。