タグ

cに関するyuku_tのブックマーク (13)

  • 碧色工房-blue studio- C言語

    このコンテンツはだいぶ古く、私の知識も未熟だった頃の内容のままアップデートされておりません。 ページとしては残しておきますが、明らかな問題がない限り、今後更新は行わない方針です。 ここでは、C言語について解説みたいなことをやってみようかと思います。 私の趣味の一つははプログラミングですが、 そのためにC言語の入門書を卒業した後にちょくちょく調べる必要のあったこと、 ちょっと実用的なプログラムや遊びのプログラミングに必要な要素とか、 入門書にかかれていなけれども重要な要素といったことについてつらつらと書いてみようかと思っています。 とはいえ、私自身勉強中なのでいい加減なことを書いてるかもしれません、 そのときはご指摘ください。こっそり直します(笑) C言語というのは言語仕様そのものは比較的簡単ですが、非常に奥の深いものです。 そんなわけでなのかどうかはともかく入門書を卒業すると、 表面的には

    碧色工房-blue studio- C言語
    yuku_t
    yuku_t 2012/02/23
  • 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

    yuku_t
    yuku_t 2012/01/17
  • PyObject の基礎

    話すこと¶ C で OOP を作るには? そもそも OOP って? C ではどうするの? Python ではどうしてるの? お前, 誰よ?¶ @cocoatomo B2B の基幹業務パッケージを作る会社 研究開発部門みたいなとこ 普段は Java 使い Python との出会い: 仕事で Jython Python document の翻訳やってます http://code.google.com/p/python-doc-ja/

  • C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴

    Top 10 C Language resources that will turn you into a better programmer - C and C++ Programming Resources 今更 C 言語かと言われそうだが、Linux カーネルだって、我々が利用している LL 言語の多くだってこの言語で書かれているのである。ワタシ自身は未だどの言語よりCを愛している。 以下に C 言語に関してウェブに公開されている代表的なリソースを挙げていく。さすがに更新が長らく止まっているものが多いが、それでも有用な情報源には違いない。ネタ元は Hacker News。 C Programming Notes Programming in C - UNIX System Calls and Subroutines using C. C Lesson by Chris Sawtell

    C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴
  • dis/inspect モジュールを使った Python のハッキング

    目次 dis/inspect モジュールと ceval.c を使った Python のハッキング dis モジュールと python interpreter 関数に属する func_code オブジェクトとco_varnames, co_names, co_consts 属性 python interpreter ceval.c:Python Virtual Machine の C ソース・コード inspect モジュール dis, inspect を使った一行コード python コードの hack x,y = y,x, x,z,y = z,y,x Python オブジェクト 関数 STORE_GLOBAL/STORE_NAME inspect 経由による クラスの disassemble LOAD_ATTRI リスト hash generator thread decorator 構

  • 総合目次 - 苦しんで覚えるC言語

    苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。 サイトについて 苦しんで覚えるC言語(苦C)は C言語入門サイトの決定版です。 C言語の基機能を体系立てて解説しており、 市販書籍と同等以上の完成度です。

    総合目次 - 苦しんで覚えるC言語
    yuku_t
    yuku_t 2010/11/22
  • How to create a generator/iterator with the Python C API?

  • C言語最大の欠点

    1980年代、筆者が高校生・大学生だったころに「C言語がすごい」という話を友人から聞いていた。しかし、当時の筆者が触れていたのはMSXパソコンのBASICと大学の汎用機のFortranくらいだった。C言語をやっと手に入れたのは、1992年の暮れである。清水の舞台から飛び降りるような気持ちでBorland C++の大箱を買って帰った。 それから20年近くが経過した今でも、C言語は「最強のプログラミング言語」と呼ぶべきポジションを確保し続けている。UNIXオペレーティングシステムとC言語が世界に与えたインパクトの大きさは、実に大きなものがあった。 ただ、C言語を学習したり評価したりする際には、C言語の大きな欠点を知っておく必要があるだろう。筆者が考えるその大きな欠点とは、「文字列の扱いが非常に面倒」であることだ。 「バッファオーバーフロー」を回避するのは大変 例を示そう。図1はC言語で記述した

    C言語最大の欠点
    yuku_t
    yuku_t 2010/10/23
  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

  • C言語におけるメモリプールの実現方法 - S.T.K Wiki

    メモリプール メモリプールとはあらかじめまとまったメモリ領域を一括で確保した後に確保したメモリ領域を使ってメモリにデータを割り当てる手法、 もしくは確保したメモリ領域をプログラムから効率的に使用/管理できるようなアルゴリズム/データ構造を指す。 CようにGC(ガベージコレクション)を持たない言語ではヒープ領域から確保したメモリの解放はプログラマの責任で行う必要がある。 しかし、実際にCやC++でプログラミングしたことがあるならわかるように確保したメモリを適切なタイミングで 解放するのはとても難しいとまでは言わないまでもあまり簡単なことではない。 単にfreeを呼び出すのを忘れたり、もしくはリストやツリーのような少しでも複雑なデータ構造を扱う際に割り当てられたメモリを適切に解放できずにリークしてしまうようなことは普通に起こりうる。 モダンなOSではプログラム終了後にそのプログラムに割り当てら

  • Google、「Native Client SDK」のプレビュー版をリリース | エンタープライズ | マイコミジャーナル

    Googleは5月12日(現地時間)、「Native Client SDK」の初期プレビュー版を公開した。Google CodeのプロジェクトページからWindows用/ Mac用/ Linux用をダウンロード入手できる。 Native Clientは、x86系プロセサのネイティブ・コードで記述されたアプリケーションをWebブラウザ上で実行可能にする。メディア編集や3Dゲームなど、処理能力が求められる分野にWebアプリケーションを広げる技術として注目されている。Native Client SDKプレビュー版には、C/ C++コードからx86-32またはx86-64のネイティブバイナリを作成するGCCベースのコンパイラ、zlib/ Lua/ libjpegなどオープンソースプロジェクトのポート、NPAPI Pepper Extensionsを用いた開発のサンプルなどが含まれる。「Chrom

  • OpenMPの基礎構文

    はじめに 昨今マルチコアCPUは一般化し、並列化処理の重要度がどんどん高まってきました。この流れはもう変わらないでしょう。ですから、我々開発者にとって並列処理の知識は絶対に必要なものです。とはいえ、日々の業務をこなしつつ資料が少ない並列化処理を身につけることは大変です。 そこで今回筆者は、並列化処理を実現するOpenMPの入門記事を書くことにしました。OpenMPを選択した理由は、一番効率が求められているのはC/C++プログラマーだと考えたからです。C/C++プログラマーの方々が並列処理を習得するお手伝いができれば幸いです。 なお、この連載で解説に使用するサンプルコードはあくまでもOpenMPの基礎を理解するための便宜的なものであり、実務でOpenMPを使用する際にはよく理解してから用途に適したプログラミングを行ってください。 対象読者 筆者が想定している読者はCの基的文法をマスターし、

    OpenMPの基礎構文
    yuku_t
    yuku_t 2010/01/06
  • 1