タグ

C言語に関するcarme-264ppのブックマーク (3)

  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • ポインターについて理解を深めよう

    値渡しと参照渡し 関数へオブジェクトを渡す方法には、値渡しと参照渡しの2種類があります。値渡しは、オブジェクトの値が複製(コピー)され関数へ渡されます。プログラミング言語Cにおける関数呼び出しではすべて値渡しになります。なお、ポインターを渡すことでオブジェクトの参照を渡すことができるため、参照渡しとほぼ同じことが実現できます。 それぞれの渡し方による関数呼び出しの方法を説明する前に、値のコピーについて少し詳しくみてみましょう。Cにおける値渡しでは、実引数(関数呼び出しの引数)の値が仮引数(関数宣言の引数)に代入されます。 はじめに、int型のオブジェクトaとbを定義してみます。

    ポインターについて理解を深めよう
  • 目指せ! Cプログラマ - @IT

    プログラミング言語の基となる「C」の正しい文法や作法を身に付けるための初心者向けの入門連載です。C言語とは何かの基礎知識から、Windowsで学ぶための開発環境のインストールの仕方、デバッガの使い方、さまざまな基構文/文法(変数、定数、型、演算子、ifやswitchなどの条件分岐、whileやforなどの繰り返し(ループ)、関数、識別子の有効範囲、派生型、ポインター、標準ライブラリ、プリプロセッサなど)を、書き方が分かる豊富なサンプルコードとともに解説します。

    目指せ! Cプログラマ - @IT
  • 1