C言語

C言語

'''C言語'''(Cげんご)は、1972年AT&Tベル研究所デニス・リッチー (Dennis M. Ritchie) が主体となって作ったプログラミング言語である。英語圏では単に '''C''' と呼称されており、日本でも文書や文脈によっては同様に C と呼称される。

UNIXの移植性を高めるために開発された経緯から、オペレーティングシステムカーネル向けの低レベルな記述ができることを特徴としている。
次のエントリ[ 特徴 ]
C言語
【画像】単なる文字列でも、C言語の

特徴

Cは手続き型言語であり、コンパイラ言語として設計された。Cは、自由度、実行速度、コンパイル速度などを追求したが、代わりにコンパイル後のコードの安全性を犠牲にもしているので、コンピュータ寄りの言語仕様になっている。

  • アマチュアからプロのエンジニアまで、非常にプログラマ人口が多い。Cは正負の両面含めてコンピュータの世界に大きな影響を及ぼしているが、最大の原因はそのプログラマ人口の多さであると言われている。

  • パソコンはもちろんのこと、組込み用マイコンから大型コンピュータまで、Cを使用できるプラットホームは多様である。また、仕様規格・派生言語も多い。

  • 採用されているソフトウェア分野が広い。あらゆる分野に対してある程度の言語適性があり、現実的な選択肢としてよく用いられる。発祥元であるUNIXの場合、大抵のことがスクリプト言語マクロプロセッサフィルタやそれらの組み合わせで処理できるため、うまく分野の棲み分けができていた面があったのだが、幅広い領域に移植された結果、適切でない分野にCが使われている場面もある。

  • 低水準な記述が出来る高級言語とも、高級言語の顔をした低級言語とも言われる。また、コーディング上の“自由度”が非常に高い。そのため良くも悪くも“何でも出来てしまう”パワフルさは多くのプログラマの支持を集める一方で、セキュリティー脆弱性や潜んだバグによる想定外の動作、コンパイラによる最適化の難しさ(そのためCはコンパイラ言語として決して高速ではない)といった欠点の原因ともなっている。

  • 商用・非商用を問わずコンパイラやC向けのエディタが豊富で開発環境が整備しやすい。


  • Cの主な特徴は以下の通りである(歴史的な経緯からBASICPascalと比較されることが多い)。
    次のエントリ[ 自由度 ]
    C言語
    【画像】C言語迷路ソース

    自由度

  • 行番号を採用せず文の区切りを区切り記号 ; セミコロン で表し、改行文字にも空白にもトークンの区切りとしての意味しか持たせない「フリーフォーマット」という形式を採用している。

  • **記述作法について、しばしば議論の対象となり、本も多数出版されている。
  • ALGOLの思想を受け継いで'''構造化'''をサポートしており、手順を入れ子構造で示して見通しの良い記述をすることができる。原理的に'''無条件分岐'''(goto文)を使用する必要が軽減されるため、'''スパゲティプログラム'''と呼ばれるような読みにくいプログラムになりにくい。

  • '''モジュール化'''がファイルを単位として可能。モジュール内だけで有効な名前を使うことが出来る。(スコープ

  • プログラムを'''関数'''(戻り値つきのサブルーチン)に分離できる。関数の中では独立した変数が使用でき、データの流れがブロックごとに完結しデバッグが容易になる。また、多人数での共同開発の際にも変数名の衝突が回避できる(これらもCで始まったアイデアではない)。なおCではメインルーチンも関数の一つ(main関数)となっているため、プログラム中で再帰的にmain関数を呼ぶことも可能。(C++では不可能)

  • OS記述言語として設計されたため、高級言語であるがアセンブラ的な低レベルの操作ができる。'''ポインタ演算'''、ビットごとの論理演算、シフト演算などの機能を持ち、ハードウェアに密着した処理を効率よく記述できる。これはOSやドライバなどを記述する上では便利であるが、注意深く利用しないと発見しにくいバグの原因となる。

  • 配列とポインタとでは、宣言の仕方と領域確保の仕組みは異なっているが、配列アクセスそのものは、ポインタ演算および間接参照と同等である。

  • **ポインタを配列表記でアクセスすることや、配列をポインタ表記でアクセスすることができる。(糖衣構文と呼ばれるもののひとつ)
  • ソースコードの記述に使われる文字セットはASCIIを標準としているが、他のISO 646でも書けるように、トライグラフと呼ばれる表記法も存在する。
  • 次のエントリ[ アセンブラとのインターフェース ]
    C言語
    【画像】もちろん使用言語はC言語です。
    C言語
    【画像】:C言語のネスト開始/終了を線

    アセンブラとのインターフェース

  • 多くの処理系がインラインアセンブラを搭載しているほか、アセンブラで出力したオブジェクトとのリンクが容易になっている。これにより速度が要求される部分だけをアセンブリ言語で記述するということが容易に行えることが多い。もっとも、アセンブラとのインターフェースに統一された仕様はなくCPUやOSなどが同一であっても移植性は低い。

  • RISC CPUには、アセンブラでの記述が難しく、Cでの記述を前提とするものも多い。
  • 次のエントリ[ コンパイラ仕様 ]

    コンパイラ仕様

  • コンパイラの処理が1パスで済む仕様になっている。具体的には、変数はその使用より前に宣言をする必要があり、関数は宣言がないとint型が適用されるなど。(後継言語では記述によって先読みが必要になりうる)

  • 標準でマクロ記述やコンパイル条件の指定が出来るプリプロセッサを持ち (C Preprocessor) 、その名の通りコンパイル処理の前に実行される。
  • 次のエントリ[ 処理系の簡素化 ]

    出典:フリー百科事典『ウィキペディア(Wikipedia)』

    別のワードで検索!
    まずは検索→

    トレンドマガジン [マグゥ]でC言語を検索
    C言語

    C言語
    といえば…

    C言語の記事

    MP5ってなんかMP4に次ぐ新しいファイル形式の事かと思ったんだけど、短機関銃の事だったのねサーバ以降に伴い、しばらくサイトが見られなくなるかもしれません基本情報技術者試験とITパスポートリハーサル試験結局のところJavaプログラミングにしてみようと思う!切磋琢磨する仲関連オススメ情報

    C言語のニュース

    C言語の資格・検定|C言語プログラミング能力認定試験C言語編 トップページAmazon.co.jp: Cの絵本―C言語が好きになる9つの扉: アンク: 本窓の杜 - C言語を始めよう!ゲーム作りで学ぶ!実践的C言語プログラミング

    C言語の掲示板

    C言語の資格・検定|C言語プログラミング能力認定試験C言語編 トップページAmazon.co.jp: Cの絵本―C言語が好きになる9つの扉: アンク: 本窓の杜 - C言語を始めよう!ゲーム作りで学ぶ!実践的C言語プログラミング
    人気の話題TOP10

    [2012/2/15 7:15更新]
    1時間前:2位(536pt)
    1時間前:圏外(520pt)
    1時間前:3位(461pt)
    資格
    4位 資格
    1時間前:圏外(440pt)
    1時間前:4位(437pt)
    雨水
    6位 雨水
    1時間前:圏外(424pt)
    1時間前:6位(382pt)
    濃絵
    8位 濃絵
    1時間前:圏外(375pt)
    1時間前:7位(363pt)
    高橋昭一
    10位 高橋昭一
    1時間前:8位(360pt)
    続きはこちら
    >>
    ▼おすすめキーワード▼
    ▼人気の話題ランキング▼