タグ

プログラミングとCに関するyasufのブックマーク (9)

  • C言語の時間関係の関数のまとめ - 開発覚え書き

    久しぶりにC言語に触って、ベンチマークなど。 C言語の時間関係の関数をまとめてみた。 特に、clock関数はWindowsとUNIX(Linux)では 求められる時間の意味が異なるのは注意が必要。 ほとんどこのことに言及しているページがないのが もっと問題だと思う。 ---------- time関数 #include <time.h> time_t start_time, end_time; double sec_time; time( &start_time ); /* 処理 */ time( &end_time ); sec_time = difftime( end_time, start_time ); <p>精度・分解能: WindowsでもLinuxでも秒単位。time_t は整数型。</p> clock関数 #include <time.h> clock_t start_cl

    C言語の時間関係の関数のまとめ - 開発覚え書き
  • ビットシフトの落とし穴 - 算術シフトと論理シフト - 職業としてのプログラミング

    C言語には、ビットシフト演算子というものがあります。左シフト演算子(<<)と右シフト演算子(>>)です。同じビット演算でも、ビット単位の論理和(|)や論理積(&)、NOT(~)等はの方は、フラグ型の変数の処理で使われる事が多い気がしますが、ビットシフトの方は使用されるケースはあまりないかもしれません。 さて、このビットシフト演算子で時々問題になるのが、符号ビットが立っている時の右シフト演算です。見逃されがちなポイントは、 型によって挙動(算術シフトか論理シフトか)がかわることがある C言語の規格として、算術シフトか論理シフトかは不定 Nbitの算術シフトと2のN乗での除算は等価ではない といったところにあります。 算術シフト(shift arithmetic)と論理シフト(shift logical:又は0充填シフト)という言葉をご存知ない方のためにちょっと説明を書いておくと、シフトによっ

  • プログラミング言語 C の新機能

    プログラミング言語 C は 1990 年に ISO で規格化された言語です。その後、何度かの誤りの訂正や wchar_t 型の追加といった追補がなされた後、さらに使いやすくするための新しい機能が検討されてきました。そして、1999 年、ついに新しいプログラミング言語 C の仕様「ISO/IEC 9899:1999 - Programming Language C」(略称 C99) が 1999/12/01 付けで規格として出版されました。ここでは、その新機能を説明します。

  • 11-C言語で文字列を扱う

    再確認、"ABC" さて、「"ABC"」というのが文中に出てくると、一体どういう意味をなすのか。これは重要です。前にも言いましたが、C言語には文字列という型はありません。それじゃぁ一体、文法上どういう意味になるのでしょうか。 じつはプログラム中に「"ABC"」が出てくると、これ全体がアドレスの値になります。何のアドレスの値かというと、'A', 'B', 'C', '\0' と連続してメモリ上に置かれた時の'A'へのポインタです。メモリ上のどこに置かれるかは分かりません、これはコンパイラやOSがうまく配置してくれます。 'A'はchar型、"ABC"は'A'のアドレス これを頭の中で何度も唱えてください。すると、こんなことができると分かるはずです。 char *s; s = "ABC"; この例は、char型へのポインタ変数sを作って、そいつにどこかに用意された"ABC"の先頭アドレスを代入

  • typedef structとstructの違い

    日時: 2007/12/03 00:19:34 名前: AAL #include <stdio.h> #include <math.h> typedef struct {     double x;     double y; } Point_t; double CalcDistance( Point_t p1, Point_t p2 ){     return sqrt( pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2) ); } int main(){     Point_t p1, p2;          puts("p1のX, Y を入力してください");     scanf("%lf %lf", &p1.x, &p1.y );     puts("p2のX, Y を入力してください");     scanf("%lf %lf", &p2.x,

    yasuf
    yasuf 2010/05/25
    結局どれがいいの
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • 苦しんで覚えるC言語

    [全ページ目次] 苦しんで覚えるC言語(苦C)は、初心者を対象としたC言語入門サイトです。 C言語の基機能を体系立てて解説しており、市販書籍と同等以上の完成度です。 初めての人は 前書き から読み始めて下さい。 キーボードの矢印キーか、右下の進む>で次のページに移動します。 コンパイラ入手:基礎編:応用編:標準ライブラリ 全文検索:ダウンロード版:苦Cアンケート:ミス報告:掲示板で質問 [  更新情報  ] 01月22日 : Visual C++ 2005 Express Edition 10月30日 : Borland C++ BuilderX Personal 10月07日 : 掲示板に寄せられたQ&A項目を作成 03月10日 : ドラッグへの対応 ※ミス報告で報告されたミスの修正は約100回以上行っています。 苦Cについて 苦Cの使用法(特に読まなくても良い

  • MASAPICO's PAGE

    Win32 サンプル集 Win32 のサンプル集です。 関数別 Win32 サンプル集 関数別の Win32 のサンプル集です。 その他の情報 その他の情報です。(00/02/24更新) 注意事項 注意事項です。必ずお読み下さい。(99/09/20更新) 更新履歴 Win32 API サンプル集の更新履歴です。 暗号技術の基礎知識 とある事情で作成していた文書が無駄骨になってしまったのですが、せっかくなのでここで発表しておきます。 ○サイト移転のお知らせ(03/12/02) これまでmasapico's pageはいくつかの無料サイトを利用して運営していましたが、geocitiesのメールサービス廃止をきっかけに、それらの無料サイトに登録していたアカウント情報の変更を行なおうとしたところ、色々と問題が起こりました。検討の結果、暫定的に以下のサイトに移転することにしました。 新しいURL:h

  • Programming Place Plus

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1