タグ

C言語に関するsigwinのブックマーク (3)

  • わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ

    Cコンパイラといえばとてつもなく複雑なプログラムというイメージがあります。ところが、このCコンパイラを(サブセットとはいえ)わずか500行ほどのCのソースコードで実現した「CC500」名付けられたプログラムが公開されています。 ソースコードは可読性を維持するためにつけられた空行やコメントを含めると、実際は750行ほどになるそうですが、それでもこれだけコンパクトなソースコードで実行可能なELFバイナリ(Linux用のバイナリ)を生成できるのは興味深いのではないでしょうか。 以下実際にLinuxでコンパイルしてみました。 自己コンパイルできる このコンパイラはC言語のサブセットで、自分自身のソースコードをコンパイルできるところがおもしろいところです。まず「cc500_1」という実行ファイルを生成します。 gcc cc500.c -o cc500_1 生成された実行ファイル「cc500_1」を使

    わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ
  • C言語講座:リスト型のデータ構造

    サイトマップ / C言語講座>出入り口>総目次>目次:ヒープ領域>リスト型のデータ構造 リスト型のデータ構造 [分割コンパイル]←このソース→[ハッシュテーブル] /* プログラムが起動するとメモリアドレスの小さい方から順に、コードセグメント、データセグメント、そしてプログラム実行時に必要に応じて、動的にメモリが確保されるヒープ領域が取られます。 ヒープ領域にメモリが確保されるのは、例えば、calloc( ) や malloc( ) の呼び出し時です。 */ /* スタック */ /* これとは別に、上記のメモリと不連続に、上位のメモリから下位のメモリに向けて、スタックという領域がとられます。関数を呼び出すと、スタックに戻り場所や変数の値を ( 引数 ) を積んで制御が関数に移ります。呼ばれた関数はスタックから値を取り込みます ( Call by value )。 関数の再帰的呼び出しでは

  • BohYoh.com【C言語講座】標準ライブラリ

    プログラミング言語である標準C(ANSI/ISO/JI)で提供されている全標準ライブラリの完全かつ正確な仕様をヘッダ別に紹介するページです。

  • 1