タグ

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

  • C++ 初歩 :: 6. ポインタ型 (下) :: 補足

    配列型 int x[5]; 上の様に配列を宣言した場合、配列 x とは何なのでしょうか? int の字が見えるからと言って、int 型の変数という訳ではありません。 と言うことは、配列は変数ではないのでしょうか? いえいえ実は、x も変数です。 配列型の一つである "int[5]" という型の変数なのです。 然し、以前、変数の宣言は "〈型〉 〈変数名〉;" と記述すると述べました。 これは、その形式に則っていません。 実は、前に示した形式は完全な物ではないのです。 例外として、配列型変数 (と関数ポインタ変数) の宣言はこの形式には従いません。 配列型の型名は、変数名の左右に分裂してしまっているのです。 (補足 複雑な型の宣言) int x [5] ; ~~~ ~~~ ↑ ↑ 型名 配列型は、参照型の様に良く分からない様な存在ではありません。 int 型や double 型の様に分かり易

  • 碧落 - C 言語でオブジェクト指向プログラミングを行う

    はじめに この記事では C 言語でオブジェクト指向プログラミングを行う方法を、 アドレス帳ソフトの作成を例にしながら紹介します。 とは言っても、 現在「オブジェクト指向プログラミング」という言葉で表されることを完全に実現するわけではありません。 Bjarne 氏が言うところの 「データ抽象化のスーパーセットであるオブジェクト指向プログラミング」 を現実的な手間で実現します。 これによって次に挙げる点の向上を狙います。 安全性 可読性 他言語との相互運用性 オブジェクト指向とは オブジェクト指向という言葉が魔法の呪文のように唱えられた時代は終わったように思いますが、 オブジェクト指向という言葉は何を表すのでしょうか。 隠蔽、継承、多相性という 「オブジェクト指向の三原則」 を満たさなければオブジェクト指向言語ではないとしてプログラミング言語が批判されたこともありました。 しかし「オブジェクト

    siriusjack
    siriusjack 2013/05/29
    おもしろいやり方
  • C言語の定石

    C言語の定石 ヘボ将棋って言葉がある。筆者も将棋をするが、まさにヘボ将棋だ。ヘボ将棋というのは、最低限のルールだけで楽しむ将棋と思う。「歩は1つ前にしか進めない」とか「飛車は前後左右は自由に動かす事が出来る」などの知識だけで楽しむ将棋だ。もちろん、目的が友人との親睦を深める事なら大いに結構だと思う。 将棋と同様に、筆者はヘボプログラムというのがあると思う。コンパイラはエラー無しに通るが、それ以外、全部自己流というか目茶苦茶なプログラムの事である。そして、ここからが重要なのだが、この様なヘボプログラムは、同僚との親睦を深めるどころか同僚を精神的肉体的に過労に追い込み病にしたり、挙げ句の果ては自殺に追い込む事もありうる。ヘボプログラムを書く下手糞は、ともすれば、業務上過失傷害や業務上過失致死に問われるに値する迷惑をかけているのだ。 さて、ヘボ将棋から脱却する一つの方法は、定石を覚える事

    siriusjack
    siriusjack 2013/05/19
    Static 宣言した関数を他のファイルから使うという荒業に驚いた。
  • ポインタのポインタ

    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)); /* 相対的に文字

    siriusjack
    siriusjack 2013/05/18
    **でポインタのポインタ型変数が定義できる。mnthpは配列だからポインタで、そのポインタが指してる実体もポインタ。mnthpを保存する変数としてポインタのポインタ型を定義出来れば便利というわけだろうが…複雑だな。
  • cutterを使ってみる - udon's blog

    前々から気になってたけど先日のTDDBCのこともあるので触ってみました。 http://cutter.sourceforge.net/index.html.ja 前にチラッと見かけたうろ覚え情報によると、CUnitとかみたいに一々テストメソッドの登録とかイランとかで使いやすい、と。 ってか、ついこの前GoogleTest触ったけど、main()書いてなかったよな・・・・あらあら? まぁええか。 ◯環境 MBA + port ◯インストール 各環境別にインストール方法が載ってたのでそれに従って。 あ、すげぇ。すんなり終わった。 ◯チュートリアル あれ?liboolizeでエラーになる。。。libtool入れたのに。。 でいろいろ見てて気づいたけど cutter-macports/README MacPorts for Cutter had been imported into the off

    cutterを使ってみる - udon's blog
    siriusjack
    siriusjack 2013/05/16
    libtoolはハマった
  • サービス終了のお知らせ

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

  • gccを用いたCの共有ライブラリの作り方 - シリコンの谷のゾンビ

    ゆとりなもので,ついこないだまで動的リンクと静的リンクの違いがわかっていなかった.動的リンクというのが理解できた頃,そっかユーティリティライブラリは自分で共有ライブラリ作ってしまえばいいんだ,というごく当たり前のことが理解できた. UNIXをさわりはじめていた初期の頃,mecab.soのシンボリックが〜〜という用なハマりがあったのだけれど,あれは要するに実行時に共有ファイルへのパスを指定してあげればよかっただけのこと. わかると当たり前だけれど,わからないと「何がわからないのかわからない」状態に落ち込むなぁ,と改めて思いました. (幸いなことに,僕の周りには「ゆとり乙ww」と指導してくれる方々がいるので認識できるようになるのですが,少なくとも大学(院)時代はそうでなかったわけで,ゆとりスパイラルの恐ろしさを体感した気がしています.) というわけで自分用共有ライブラリの作り方をきちんと理解で

    gccを用いたCの共有ライブラリの作り方 - シリコンの谷のゾンビ
  • サービス終了のお知らせ

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

    siriusjack
    siriusjack 2013/05/08
    Xcodeのプログラム実行場所を調べるために使った。
  • ファイル入出力 (fgets( )!=NULL)

    第17章 ファイル入出力 ファイル入出力関数はキーボードや画面ではなく、ファイルに対して入出力を行います。ファイルは画面出力とは異なり出力結果の保存が可能ですので、覚えておくと何かと重宝します。 尚、ファイル入出力関数を使用するには、#include <stdio.h> する必要があります。 17-1.ファイル操作手順 ファイル入出力は通常、以下の手順で行います。 ファイルポインタとはFILE型へのポインタです。 FILE型では入出力の現在位置(ファイル位置指示子)、ファイルの終端に達したかの情報(ファイル終了指示子)、エラー情報(エラー指示子)、関連するバッファへのポインタなどのファイルの入出力を行う上での必要不可欠な情報を管理しています。 ですから、ファイル入出力を行う際には必ず、このファイルポインタを fopen()によって取得しなければなりません。 また、入出力操作の完了とともに必

  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう
  • enbug diary(2008-02-02)

    _ 日常 当は朝のうちに行くつもりだったのに、 結局夕方になってから、 No Country for Old Men を観に行った。 原作の評判は聞いていたのだが、映画も割と評判良さそうだったので、 見に行く気になった。 少々オーソドックスなストーリーと言えなくもないが、 映画の世界にどっぷり浸かれて、かなり良かったー。 ハリウッドじゃ、最近はゲームやコミックの映画化が多くて、 どうしても勧善懲悪な内容になりがちで、 少々傷気味だっただけに、 こういう善対悪にならない構図は非常によろしい。 一応善に限りなく近い存在であるシェリフは常に事件から一歩退いた位置にいるし、 観客の多くが一見善と捉えがちな主役は所詮こそ泥だ。 どっちの方がより恐ろしい存在か程度の違いしかないと言っていい。 たぶん、この映画で最も重要なテーマは自分の運命の決め方なんだと思う。 われわれは常に何かを選択しながら生き

    siriusjack
    siriusjack 2013/05/06
  • ビット演算子

    ビット演算子とは整数型の数値に対してビット単位で演算を行うときに使用する演算子です。ビット AND やビット OR などの他にシフト演算子などが利用できます。ここでは C 言語におけるビット演算子の使い方について解説します。

    ビット演算子
  • 足し算を使わずに足し算する — KaoriYa

    int add(int a, int b) { while (b != 0) { int c = (a & b) << 1; a ^= b; b = c; } return a; } はい。この関数では足し算(演算子)を使わずに、ビット演算とループだけで足し算(加算)を実現しています。いわゆる全加算器ってやつで、これと同じ事が電気回路的に行われるのがCPUにおける足し算(演算子)です。 ざっくり解説しますと、一時変数cには各桁のキャリーを計算しています。キャリーはこんな真偽値表なので、 abc

    siriusjack
    siriusjack 2013/02/05
    これがコンピュータにとっての足し算!?
  • 1