タグ

Cに関するyasufのブックマーク (22)

  • 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充填シフト)という言葉をご存知ない方のためにちょっと説明を書いておくと、シフトによっ

  • 32bitと64bitのサイズの違い(C言語): のぼメモ(仮)

    32bitと64bit環境ではサイズが違うのでメモメモ。 色々な型に対してsizeof()関数を使ってみた結果は以下の通り。 OS間または32bit/64bit間でサイズが変わる型を使う場合は移植に注意が必要。

    32bitと64bitのサイズの違い(C言語): のぼメモ(仮)
    yasuf
    yasuf 2012/01/18
    64bit windowsOSだとlongが32bitになってしまう件
  • プログラミング言語 C の新機能

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

  • プログラム学習室 C++言語 基本のき

    ■お奨めリンク Computer Planet 簡単かつ簡潔にまとめられています。C/C++は初めてという方は一度ご覧になることをお奨めします。 ■基的なデータ型 int a; // a は -2,147,483,648 〜 2,147,483,647 の整数値 char b; // b は -128 〜 127 の整数値、1バイト文字(半角文字)も可 char c[3]; // c は半角で2文字+'\0'(文字列を終わりを意味する値) ■ if 条件判断 次の例では i が 1 の時、 x = a + b が実行される。 if ( i == 1) { x = a + b; } if 文は ある条件を満たすか、満たさないかで if の後の { } の間を 実行するかしないか判断する。 if の後の一行しか実行しないのであれば { } は省略できる。 if ( i == 1) x = a

    yasuf
    yasuf 2011/08/23
    _splitpath関数
  • 11-C言語で文字列を扱う

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

  • C++マニアック,オペレータのオーバーロード,operator overload,演算子のオーバーロード,演算子

    ()、関数呼び出し演算子、関数オブジェクト 演算子の表へ ページの先頭へ () は、関数呼び出しの演算子です。これをクラス定義の中でオーバーロードすると、クラスオブジェクトの後ろに () を付けて、関数呼び出しの形式で呼び出せるようになります。 まず、定義の仕方を見てみましょう。次の例では、整数の引数 iValue を取り、これを 2 倍にして返す演算子 () を定義しています。 class CManiac { public: int operator()(int iValue) { return 2 * iValue; } }; 次に、これを使う側の例を見てみましょう。 int main() { CManiac maniac; // クラスオブジェクト maniac を作成する。 int iValue = maniac(1); // 関数呼び出し演算子 () を maniac に適用する

  • 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の使用法(特に読まなくても良い

  • printf()関数

    フォーマット指定子 これまで、何らかのデータを出力するのに標準で用いてきて かつC言語を学習するのに、もっとも最初に習う関数こそprintf()関数ですね しかし、この関数はこれ一つで文字列から数値まで あらゆるデータを書式化して表示するという、多機能な一面を持っています 今回は、このprintf()関数の知られざる(?)秘密にせまりたいと思います printf()関数には、ご存知のように多くのフォーマット指定子が存在します フォーマット指定子は%ではじめ、記号で指定します 代表的なものは、文字出力の%c、符号付10進数の%dなどですね しかし、以外と使いなれないものもあるかもしれませんので いま一度、フォーマット指定子の一覧を見てみましょう #include <stdio.h> #define STR "Kitty on your lap" int main() { int i; pri

    yasuf
    yasuf 2008/05/14
  • サービス終了のお知らせ

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

    yasuf
    yasuf 2008/04/25
  • 配列とポインタ

    10-2.配列とポインタ 10-1.変数とポインタとの違いに気を付けてください。 ポインタは、変数のアドレスを格納するよりは、配列のアドレスを格納する方がずっと使用頻度は高くなります。 (1)配列とアドレス (変数)と(配列)の違いに注意してください

    yasuf
    yasuf 2008/04/25
  • 勉強部屋(C,C++,VC++)

    EditBoxの色を変える関数です。 VC++のヘルプを見ながら作りました。同様にすれば、リストボックスの色を変えることも可能です。 カレンダー あくまでも勉強用です。実用的なのを使いたいかたは ここから落としてください。 DLLの作り方 勉強用に四則演算のDLLを作りました。 ActiveXの作り方 勉強用に四則演算をするActiveXを作成しました。 ディスクの空き容量を調べる関数 WIN95初期バージョンは2ギガまで、WIN95OSR2以降は2ギガ以上調べることが可能です。 マウスカーソル部分の画像を拡大(縮小)するプログラム 別HPで掲載されていたのを参考にして作成しました。 IPアドレスを取得する なんとなく作ってみました。 文字コードを変換する 文字列をEUC, JIS, SJIS, 半角カナ→全角カナに変換します。 ログ関数 ログを取る関数です。 演算子クラス ユーザー定義ク

  • C/C ―Programming Tips―水無瀬の部屋

    [PR] C言語 戻る 目次 / C・C++ / Windows / Visual C++ / その他 主に C/C++ を中心とした話題。 ・年月日から曜日を求める ・二つの値を交換する ・ワイルドカード('*', '?')を使って文字列を比較する ・指定の年が閏年かどうか判定する ・指定の年月日が有効であるか判定する ・指定の年月日がグレゴリウス歴の範囲内かどうか判定する ・二つの値から大小関係により一方を選択する ・条件演算子(?:)を使う ・ファイルに文字列単位の入出力操作を行う ・最大公約数、最小公倍数を求める ・printf, fprintf, sprintf 使用上の注意 ・部分文字列を取り出す ・文字列を移動する ・部分文字列を置換する ・タブ文字 '\t' を展開する ・シフトJIS文字列の判定 ・配列の要素数を計算する ・assert マクロを使う ・verify マク

  • MASAPICO's PAGE

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

  • ライブラリ関数一覧

    標準ライブラリ関数については 第7章 で簡単に触れましたが、ここでは第7章では扱わなかったANSI標準ライブラリ関数を、簡単な用例も示して詳しく説明することにします。 なお、下記の「☆」はこの付録での書き下ろし、「○」は編へのリンクを示します。 【時刻・日付管理関数】 ヘッダ: time.h ※関数名説明

    yasuf
    yasuf 2007/07/10
  • 授業

  • Loading...

    yasuf
    yasuf 2007/06/05
    c言語
  • Programming Place Plus

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