タグ

cに関するteikuのブックマーク (21)

  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

  • Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな

    ApacheのFilterモジュールを作った話しをしたらid:c9katayamaに情報公開しろと言われたままでしたので公開します。 C言語の勉強しようかな、Apache2.xのモジュールを作ってみようかな、gdb使ってデバッグしてみようかなと考えてた人にお勧めです。 JavaでのServletの開発経験のある人であれば、Filterの処理の動きやリクエストコンテキストの考え方は分かり易いはずなので、エントリを読み終わる頃にはApacheのモジュールをgdbでデバッグしながら作る事が出来るはずです。 mod_orzを作成 今回はmod_orzというApacheモジュールを作成します。 Apacheモジュールを作成する際には、apxsというモジュール開発用のコマンドを使用しテンプレートを作ります。 # apxs -g -n orz Creating [DIR] orz Creating [F

    Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな
  • ガベージコレクションの実装法と評価

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

  • IPA セキュア・プログラミング講座:C / C++言語編

    IPA 独立行政法人 情報処理推進機構 セキュリティセンターによるセキュア・プログラミング講座:C / C++言語編

  • アルゴリズムとデータ構造演習

    演習の目的は、プログラミング言語C及びSchemeの基礎を習得し、 それらの言語を通じて、講義「アルゴリズムとデータ構造」の理解を深めることにあります。 重要なお知らせ 特に重要な連絡事項はここに掲載されます。 課題について 課題には、A課題とB課題があります。(課題番号の末尾が種類を表します。) B課題が基礎的な課題で、A課題が発展的な課題となっています。 B課題を全問解くことが、単位取得の目安です。 C入門第1回(10月10日) C入門第2回(10月17日) C入門第3回(10月24日) C入門第4回(10月31日) C第1回(11月7日) C第2回(11月14日) C第3回(11月21日) C第4回(11月28日) C第5回(12月5日) Scheme第1回(12月12日) Scheme第2回(12月19日) Scheme第3回(1月9日) Scheme第4回(1月16日) C補講

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • C++アプリケーションの効率的なテスト手法(CppUnit編) ― @IT

    第2回 C++アプリケーションの効率的なテスト手法(CppUnit編):連載 C++開発者のための単体テスト入門(1/4 ページ) 連載目次 前回は単体テストの重要性を示し、従来のC/C++でのテスト手法であるprintf関数やassertマクロを使ったテストを紹介しました。この2つのテスト手法は開発環境(コンパイラとライブラリ)さえあれば利用でき、その使い方も簡単です。しかしながら、いずれも系統立てて、効率よくテストを行うには力不足の感が否めません。 今回は、Visual C++ 2005 Express Editionを含むVisual Studio 2005(以後、VS 2005)で利用できる代表的な単体テスト・フレームワーク(Unit Test Framework)の1つである「CppUnit」を紹介します。 ■単体テスト・フレームワークとは? 前回、「バグは早期発見が望ましい。早

    C++アプリケーションの効率的なテスト手法(CppUnit編) ― @IT
  • Lisp500

    [up] | news license installation usage bugs features Is your program large and complex? Are you tired of Greenspunning? Now, in only 500 lines, here we have an informally-specified bug-ridden implementation of Common Lisp, ready to meet your needs. -- Christophe Rhodes Lisp500 is a 500-line implementation of an informally specified dialect of Lisp. It attempts to be not too bug-ridden. Unfortunate

  • Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro

    「Code Reading―オープンソースから学ぶソフトウェア開発技法」(毎日コミュニケーションズ発行,写真1)というがあります。私はこのの監訳者ですから,やや自画自賛になってしまいますが,ソースコードの読み方を主題にしたはほかにはあまりありません。技法からツール,データ構造,アーキテクチャ,さらには実際にコードを読んで利用する実例まで紹介している網羅的で良いだと思います。 このの「はじめに」で「達人プログラマー」として知られるDave Thomas氏は以下のように書いています。 他人の作品を読まなかった偉大な作家,他人の筆づかいを研究しなかった偉大な画家,同僚の肩越しに技を盗まなかった腕のよい外科医,副操縦席で実地の経験を積まなかった767機長――果たして,そんな人たちが当にいるのでしょうか? たしかにその通りです。ソフトウエア以外の領域では修行することとはすなわち,他の人の

    Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro
  • Xbyak - x86 JIT assembler -

    Xbyak - x86, x64 JIT assembler - .frame(English) .frame(x86の究極の最適化手法?) Xbyak(カイビャック)はx86(IA32), x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです. プログラム実行時に動的にアセンブルすることが可能なため, 柔軟な最適化(動的コード生成)が可能となります(利用シーン:量子化の高速化, 式の計算). 暗号ライブラリに使って高速な実装をしてみた(very fast etaT pairing for Core 2 Duo) ヘッダファイルオンリー xbyak.hをインクルードするだけですぐ利用することができます(32bit, 64bit両対応). Windows Xp(32bit, 64bit), Vista/Linux(32bit, 64bit)/Intel

  • Standard Template Library プログラミング on the Web

    1985年、AT&TのBjarne StroustrupがC++をこの世に送り出しました。その後C++は様々な拡張を繰り返しながら進化してきました。 1991年、ISOはC++の国際標準(standard C++)を定める作業を開始しました。標準C++の最終草案は1997年にISO C++標準化委員会に承認されました。 標準C++が規定するのは言語仕様だけなく、C++標準ライブラリも規格の中で明確に定められています。それまでC++のライブラリといえばiostreamぐらいのものでしたし、それもあくまで"事実上の標準"でしかありませんでした。 そしてそのC++標準ライブラリの一部として組み入れられたのがSTL(Standard Template Library)です。すなわちSTLは標準C++の仕様の一部ということです。 僕がSTLを知ったのは1995年、いくつかのコンパイラがtemplat

  • netswitch! | RubyInlineがすごい

    Posted by nanki Mon, 12 Mar 2007 05:14:00 GMT Rubyコード中にCのコードを埋め込めるRubyInlineを使って、 ボトルネックとなっているメソッドを置き換える。 # rubyinline.rb def benchmark s = "a" * 10000 test = Test.new t = Time.now 1000.times{test.string_xor(s, s)} Time.now - t end class Test def string_xor(str1, str2) result = str1.clone str1.length.times do |i| result[i] ^= str2[i] end result end end b1 = benchmark begin require 'inline' class T

    teiku
    teiku 2007/03/13
  • Slot Online Gacor Terbaik - Get2Lucky

    Bocoran Cara Menangkan Undian Berhadiah Luar Biasa Saat ini banyak sekali orang yang percaya bahwa mereka bisa memenangkan undian berhadiah yang biasanya diselenggerakan oleh brand-brand ternama. Hal ini tida terlepas dari kepercayaan beberapa orang bahwa “hoki” atau keberuntungan sedang memihak kepada mereka di jaman yang sedang serba sulit ini. Memang sebagaian orang banyak yang merasa kecil hat

    Slot Online Gacor Terbaik - Get2Lucky
  • Cで実現する「ぷちオブジェクト指向」:CodeZine

    はじめに CodeZineではお初にお目にかかります、επιστημη(エピステーメー)です。最初のアーティクルはクラシックなCのお話。 昨今のアプリケーションはオブジェクト指向言語による実装が主流と言ってもいいでしょう。C++Java、VB.NETさらにはRubyPythonといったスクリプト言語まで、オブジェクト指向でない言語を探すのに苦労するくらいです。 記事では、今なお現役バリバリで活躍している手続き型言語の代表格(?)Cによる、オブジェクト指向のマネゴト(オブジェクト指向風味のCコーディングスタイル)を試みます。対象読者 もっぱらCを主な開発言語として使ってはいるけども、オブジェクト指向に興味と憧れを抱いている方。抽象データ型 手始めにオブジェクト指向の特徴の1つ、「抽象データ型(ADT:Abstract Data Type)」をCで実現してみます。抽象データ型とは、データ

  • C言語による Linux サウンドプログラミング

    OSSプログラミング Linux において、サウンドカードを制御するドライバソフトウェアとして、最 も一般的なのは、Kernel に付属する OSS/Free (Open Sound System Free) で ある。このサウンドドライバソフトを C言語を用いて制御するプログラムを作 ることによって、ごく簡単な音情報処理プログラミングについて学ぶ。 参考文献 「Linuxマルチメディアガイド」、 Jeff Tranter 著 山形 浩生 訳、オライリージャパン出版 唯一の日語で書かれたサウンドプログラミングに関する情報が載っている書 籍。これを参考にして、プログラミングを行なう。 英語でよければ、以下のリンクが有益 Programmer's Guide to OSS 必要な基礎知識 C言語でプログラムが組めることが必須。while, for などの基的な制御文は もちろんのこと、置換

  • Super Technique 講座~longjmpと例外

    プログラムの流れを制御する手段として、いわゆる「構造化構文(for とか if とか)」、悪名高い「goto 文」などがあるのは周知のことだが、かなり特殊なものとして、「setjmp, longjmp」による「非ローカル分岐」と呼ばれるものがある。この「非ローカル分岐」は「非ローカル」と言うだけあって、ある関数の中から、別な関数に制御を移すことができたりする。まあ、そのために乱用すべきではなく、注意して使わなくてはならないライブラリ関数なのだが、実はこれは JavaC++ で言語の上で実装されている「例外」の基礎となるものである。だから、まずこの標準ライブラリ関数「setjmp, longjmp」について解説しよう。 → Java 講座の「例外」 setjmp, longjmp とは どうやって実現してるの? setjmp/longjmp の利用例~インタプリタ 補追1:setjmp

  • C言語でCOMクライアント

    表紙へ戻る  目次へ戻る  [前頁]  [次頁] このコーナー(C言語でCOMクライアント)の文書は、Internet Explorer 5 で表示を検証しています。 [免責事項] このドキュメントおよび添付プログラムは、できるだけ精度が高くなるよう努力はしておりますが、 記述の質や正確さについて保証してはおりません。 これらを利用したことによって生じた、直接的または間接的な、いかなる影響や機会損失についても、 筆者および関係者は責任を負いかねます。利用者は自らの責任において、ご利用ください。 [目次] 2. 今回のC言語クライアントの概要(次頁) 3. まず COMの基を確認 4. CLSID、IIDを表現する 5. COMインターフェイスの定義 6. ちょっとおまけ、COMインターフェイスの表現あれこれ 7. おまじないの初期処理と終了処

    teiku
    teiku 2006/11/24
  • Cプログラミングの秘訣

    特集 Cプログラミングの秘訣 最終更新: 2006-03-28 このテキストはC MAGAZINE 1992年4月号に掲載された原稿のオリジナルテキストを元にしてHTMLに変換したものです。掲載文章と細部が異なっていると思われます。また、気付いた個所をいくつか修正してあります。 当時はまだWindows 95もないような時代で、現在の状況から見ると違和感のある内容も結構あるかもしれませんが、時代背景を想像しながら補正しつつ読んでいただければ幸いです。 ※2006年3月28日追記: 何が原因か知りませんがこのページのアクセスが増えているそうなので、 HTML のおかしなところを修正しました。 文章の変更はありません。 なお、このサイト(表ページ)は現在休眠状態ですが、 裏ページ や 裏の裏ページ の方を、細々と更新していたりします。 目次 Part1 よいプログラムを書く条件 Part2 明

  • Haskell for C Programmers

    Haskell Tutorial for C Programmers - Introduction Written by Eric Etheridge last updated January 3, 2007 Table of Contents Each major section has its own page. Introduction Abstract Downloads Purpose and Other Online References Relationship to Our Other Tutorials Preface and Style Notes Section I: What the Heck is Going On? Part I: Haskell's Oddity Part II: Input and Output Part III: Very Bas

  • Oracle Java Technologies | Oracle