タグ

Cに関するharu-sのブックマーク (5)

  • MSVCのランタイムとスレッドとリソースリークの関係

    の虫: いまだに変な宗教が流行っているを書いたところ、どうもこのへんの情報は、あまり知られていないようであるので、できるだけ分かりやすく解説することにした。 Cの標準ライブラリは、恐ろしく古いライブラリである。その設計は、マルチプロセッサ(コア)上で動作するマルチスレッドが当然の現代では、あまりよろしくない。 たとえば、strtokという関数がある。この関数は、引数として渡された文字列を、内部のバッファにコピーする。次のstrtokの引数には、NULLを渡すことで、そのコピーされたバッファから、次のトークンの場所へのポインターを返すのである。 void f( char const * ptr ) { char const * p1 = strtok( ptr, " " ) ; char const * p2 = strtok( NULL, " " ) ; } しかしもし、strtokが複

  • C言語のコンパイル : 傾き指向プログラミング

    前回に続き、今回も前フリです。 CPUは機械語しか実行出来ませんが、 我々のような並のプログラマには、機械語の読み書きは困難です。 そこで、プログラマが読み書きしやすい書式でプログラムソースを書き、 そのプログラムソースを機械語へ自動的に変換することで困難さを解決します。 この言語を変換する作業をコンパイル、 変換する道具をコンパイラと呼ぶわけです。 そして今回使用する、C言語から機械語に変換する場合にはCコンパイラとなります。 C言語のプログラムソースを機械語にする方法ですが、少々複雑なので図にしました。 初めに我々が書くプログラムソースとして、 CソースファイルとCヘッダファイルの2種類があります。 Cソースファイルは、他の言語と同様にプログラムソース体を記述するファイルです。 Cヘッダファイルは、Cソースファイル内の関数やグローバル変数を 他のCソースファイルから参照するための情報

    haru-s
    haru-s 2010/05/19
    これは大事
  • 続・バグを生まないコーディング法 | EE Times Japan

    フォーラムでの議論は次のような発言から始まった。 「中括弧を使って複合文を記述し、文の切れ目にセミコロン「;」を使う言語では、オールマン・スタイルを使うべきではない」 私はどちらのスタイルでもよいと思っているが、「1TBSでは図2のような間違いを人間のコード・レビュワーが発見しにくい」という1TBSに対する批判は受け入れがたい。 人間のコード・レビュワーが、このような間違いを見落とす可能性があることは認める。しかし、まさにこの例は、ここで紹介するようなコーディング規則の重要性を物語っている。つまり、「バグを効果的に排除するためには、コーディング規則に強制力がなければならない。2個以上の競合する規則がそれぞれバグを防げても、それらの中の1つの規則だけが自動的に強制できる場合は、より強制力がある規則の適用が推奨される」ということだ。 われわれのコーディング規則では、上記のような例はまさに自動

  • バグを生まないコーディング法、10個の規則でソフト開発を効率化(1/3) ― EE Times Japan

    ソフトウエア開発にはバグがつきものだ。ただし、バグの発生を最小限にい止める方法がある。コーディング規則を適用してコードを記述することだ。バグが発生してからそれを発見し、修正するという通常の開発手順に比べて、簡単に、しかもコストをかけずにバグをつぶせる。 ここでは、ZigBeeを利用したセキュリティ・システムから医療機器にわたる筆者の組み込みソフトウエア開発の経験から得た、バグをなるべく発生させないコーディング規則を紹介する。 なぜコーディング規則が必要か コーディング規則は、ソフトウエア開発者に対して、コードを記述する上での規則をまとめたものである。英語のライティング教として著名な「The Elements of Style」(William Strunk Jr.、E. B. White著)の、プログラミング言語版のようなものだ。 組み込みソフトウエアにも、きれいで、正しく、簡

    haru-s
    haru-s 2009/08/04
    C++ならstaticの代わりに無名名前空間を使おう
  • Write in C - Let it be Cover - Piano

    For all the IT-People and C-Programmers out there. If you heard this song you will never try to use programming languages other than C again^^ I don't know who wrote the lyrics but I like them :D

    Write in C - Let it be Cover - Piano
  • 1