タグ

cに関するacotieのブックマーク (18)

  • C言語による画像処理プログラミング

    静岡大学工学部 安藤和敏 はじめに テストデータ BMPファイルの構造 ヘッダ部 データ部 BMPファイル操作のためのC言語ライブラリ 参考文献 はじめに 私の接した学生のうちの多くは, 抽象的な数学的理論を嫌う傾向にあるように思われた. ならば, 具体的で「目に見える形で」結果が得られるものを研究対象として与えてやれば, 興味を持ってくれるのではないかという推測の下に, 学生と一緒に画像処理のプログラミングを始めてみた. 画像形式としては, Windows bitmap (以下 BMP と略記) を選んだ. (基的に)無圧縮であることが分かりやすく, Windows標準であることが親近感を与えるというのがその理由である. 既にJavaC++で実装された, BMP形式の画像を扱うことができる関数を含んだライブラリが存在する. しかし, 来やりたいことの量に対して, 覚えなければいけな

  • [O] C言語のビット演算子

    C言語のビット演算子 Tweet [日記] C言語のビット演算子は、日常でほとんど使ってきませんでした。 ほんとに使うことが無かったので。 でも、とうとう使う日が来てしまったので、お勉強し直し。 以下はまだ自分で日常的に使ってないから、確信度の低いメモとなってます。 演算子の一覧 演算子説明&ビットごとのAND演算|ビットごとのOR演算^ビットごとのXOR演算~ビットごとの反転<<左シフト>>右シフト&=ビットごとのAND演算結果を代入|=ビットごとのOR演算結果を代入^=ビットごとのXOR演算結果を代入<<=左シフト演算結果を代入|>>=右シフト演算結果を代入| AND 必要なビット以外をマスクするときに使うことが多いらしい。 unsigned char byte = 0xcf; printf("%#x\n",byte & 0xf0); を実行すると、「0xc0」が表示される。 OR 必

    acotie
    acotie 2009/09/15
  • POINTER「配列とポインタの完全制覇」「C言語 ポインタ完全制覇」

    タイトルは「C言語 ポインタ完全制覇」。 このページの書籍化とはいえ、内容の大半は書き下ろしですので、 既にWebで読んでおられる方にも決して損はさせません。 詳細はこちらへどうぞ。 「C言語 ポインタ完全制覇(第2版)」書籍情報 「C言語 ポインタ完全制覇」書籍情報(旧版) 技術評論社さんによる書籍案内はこちら。 第2版 旧版 修正履歴は、このページの末尾にあります このページについて 全くもって僭越ながら、恐れおおくも偉そうにも、 こんな文書をWWWで公開させていただくことにしました。 この文書は、もともと社内向けの教科書として作成したものです。 私は、一介の文系出身プログラマであり、 特に情報関係の教育を受けたわけでもなく、 プログラミング言語に深い造詣を持っているわけではありません。 この文書にも多くの誤りや、誤解を招く表現があるかと思います。 そのような記述を見付けられた方は、ぜ

  • 標準Cライブラリ - Wikipedia

    C言語は、PascalやPL/1等の従来のプログラミング言語とは異なり、文字列操作や入出力等の基的な機能を内蔵していなかった。やがてC言語の利用者は、現在の標準Cライブラリの原型となる概念や実装を共有するようになった。 C言語の普及に伴い、言語仕様がそうであったように、ライブラリもまた多くの方言が生まれたが、1989年(ISO/IEC 9899:1990)にANSIによるC言語の標準規格が制定されることで統一化が図られ、更にはいくつかの新たな概念が導入され、これが標準Cライブラリとなった。 その後に行われた標準規格の改定は、標準Cライブラリへの機能追加が主であった。1995年(ISO/IEC 9899/AMD1:1995)には、主としてワイド文字操作に関する関数群が大幅に追加された。また、1999年(ISO/IEC 9899:1999、C99)には、主として複素数や数学上の演算に関する関

  • プログラムによる数値演算のベンチマーク

    C/Javaプログラムによる数値演算の速度差をベンチしてみました。 チェック項目として、 「カラの関数の呼び出し」 「整数(int型)の加減乗除算とシフト」 「単精度浮動小数点(float型)の加減乗除算」 「倍精度浮動小数点(double型)の加減乗除算」 「三角関数演算関数(cos)の呼び出し」 「平方根演算関数(sqrt)の呼び出し」 「3次元ベクトルの単位ベクトルの計算」 をテストし、それぞれを「10000*10000回」繰り返して演算し、その処理時間を計測します。 テスト環境は、Windows2000マシン(Athlon 1100MHz / Mem 512MB)と OS X10.2.2マシン(eMac(G4 700MHz / Mem 384MB))です。 Windows環境では、コンパイラとして「Borland C++5.5.1」「Visual C++6.0」「J2SE 1.4.

  • The Computer Language Benchmarks Game

  • ポインタのポインタ

    10-4.ポインタのポインタ 10-3 で学習した「ポインタの配列」はポインタを使ってアクセスすることができます。 このポインタを「ポインタのポインタ」と呼びます。 「ポインタの配列」と「ポインタのポインタ」 (例) char *mnthp[3] = { /* ポインタの配列の宣言 */ "January", "February", "March" }; char **p1, **p2, **p3; /* 「ポインタのポインタ」の宣言 */ int i, j; p1 = p2 = p3 = mnthp; /* 「ポインタのポインタ」にポインタの配列 */ /* の先頭番地を設定 */ /***** 例1 *****/ for (i = 0; i < 3; i++) { /* 「ポインタのポインタ」の値を変えずに */ printf("%s\n", *(p1 + i)); /* 相対的に文字

  • ポインタ

    第10章 ポインタ ポインタとは、「変数のアドレスを記憶する変数」と定義することができます。 C言語の特徴にポインタが使用できることがあげられますが、ポインタからC言語がわからなくなったという話もよく耳にします。 けれども、順を追ってきちんと消化していけば、ポインタは難しいものではありません。読み飛ばさず、じっくりと理解するようにしてください。 10-1.変数とポインタ (1)変数とアドレス ポインタについて理解するには「アドレス」とは何かをまず理解してください。 int a = 123; は実際には下図のように、 「メモリ上のある番地(下図では1000番地)に変数a としての領域を確保し、 その領域に 123 を格納する」ということになります。

    acotie
    acotie 2009/07/21
  • 【HOMMEZ(オムズ)公式】すべては、悩める男性のために。

    HOMMEZ(オムズ)はすべての男性の悩みに寄り添い、心と身体の健康を支援し、男性としての喜びを享受できる社会を目指しています。人には相談しづらいAGA、ダイエット、ED、妊活にまつわる男性特有の悩みに対し、情報やソリューションを提供することで男性が前向きに自分らしく生きられる幸せを実現します。

    【HOMMEZ(オムズ)公式】すべては、悩める男性のために。
    acotie
    acotie 2009/07/21
  • プログラミング・簡易タイプ

    とても単純なタイピングソフトを作ってみましょう。 今更のコマンドラインでのタイプソフトですが、このC言語で作ったプログラムを その動作そのものとして、HSP言語で作ってみるとどんなものでしょう。 内容は、英字をランダムに選び、文字数を5文字以上10文字以下として、それを 問題文とする。時間制限を設け(デフォルト60秒)、正解につき得点を加算する。 こんな感じの簡易タイプ練習ソフトです。 スクロールしていく問題と答などを、HSPではinputでの窓を下に表示していく ことにします。無理やりに似せるわけです。 ソースの解析というか、何をやっているのかはC言語の方が構造的にはずっと わかりやすいですよね。これが手続き的言語であるHSPの(解析の)わかりにくさ だと思います(これ逆に作った人だけ良くわかるのですけど)。 まあ、こんなふうにもできるというのは、HSP

  • gidforums.com

    acotie
    acotie 2009/07/16
  • HOMMEZ公式オンラインショップ

    HOMMEZ(オムズ)は男性の心と身体の健康を支援し、一人でも多くの人が子供を得る幸せや男性としての喜びを享受できる社会の実現を目指しています。男性の妊活、活力にまつわる情報や商品の力で性や妊活に悩む男性が効率的に納得感を持って活動できる機会を創出します。

  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • pi8027 - codepad

  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • Vim documentation: usr_30

    main help file *usr_30.txt*    For Vim バージョン 7.2.  Last change: 2007 Nov 10 VIM USER MANUAL - by Bram Moolenaar プログラムの編集 プログラミングに役立つ機能が Vim にはたくさんあります。プログラムをコンパイル してエラーが出た行にジャンプしたり、言語に合わせて自動的にインデントしたり、コ メントを整形したりできます。 |30.1|  コンパイル |30.2|  C 言語系インデント |30.3|  インデント設定の自動化 |30.4|  その他のインデント |30.5|  タブとスペース |30.6|  コメントの整形 次章: |usr_31.txt|  GUI を活用する 前章: |usr_29.txt|  プログラムの中を移動する 目次: |u

  • C言語のtmpnam()って関数を知った

    なんかのソース(たしかmod_dosdetector)を読んでてCにtmpnam()ってのがあるのを知りました。 なんの関数なんだろうとman tmpnamで調べたらテンポラリーファイル用の関数でした。 プログラムでテンポラリーのファイルを使う場合の名前をよしなに 決定してくれるものらしく、stdio.hで定義されています。 使い方は↓こんな感じにするとs[]にファイル名が入るみたい。 #include <stdio.h> int main() { char s[L_tmpnam+1]; tmpnam(s); printf("%s\n", s); return 0; } ためしに実行してみると、 % gcc ./tmpnam_test.c % ./a.out /var/tmp/tmp.0.GYj9KF こんな感じ。あーなんかこのファイル名どこかで見たことあるような…。 上のコードのL_tm

  • 1