タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

cとobjective-cに関するDOISHIGERUのブックマーク (10)

  • Super Technique 講座~これから学ぶべき言語

    このページでは、中級C言語プログラマがぜひ勉強すべき他の言語を紹介することにする。C言語は「何でもできる」言語であるのだが、逆に言えば「何をするにも面倒な」言語である。だから特にある処理が得意な言語があるのならば、それをCプログラムと組み合わせて使うことも、生産性を上げるコツである。 しかし、他の言語のメリットはそれだけではない。C言語しか勉強していないと、意外に「ダサい手法」しか知らないこともありうる。他の言語のアイデア、発想はC言語であっても模倣できることもあるし、何よりもプログラミングの視野を広げることができるのである。そういうメリットは、中級以上では馬鹿にならない。 オブジェクト指向言語 -- C++Java Lisp -- Scheme, Common Lisp いわゆる「スタック指向言語」 -- forth, PostScript Eiffel Tcl/Tk UNIX シ

  • Super Technique 講座~パラメータ化クラス

  • C言語 Super Technique 講座

    このページは、C言語の中級テクニックを中心に解説する。長らくプログラマをしていると、C言語の面白い使い方例が蓄積している。これらを一挙公開するために、このページを作ったのである。しかし、単にCに留まらず、他の言語の面白い特徴なども紹介していく。 内容的にはかなりヘヴィである。当然のことながら、「ポインタ虎の巻」程度の内容はちゃんと使いこなせることを前提とする。意外な技、落し穴、派手なテクニックなど、内容満載だが、ちゃんとデータ構造とアルゴリズムなども説明できれば良いと思う。(まあ、ぼちぼちやってきいます...) 以下の目次には手引きのために、評価がつけてある。凡例として示す。 レベル その解説で記載されている内容のレベル 有用度 その内容が実際に役に立つものかどうか 邪悪度 その内容が薦める方法が、一般的なコーディング規約の中で「邪悪」とされがちなものであるか否か。関数ポインタの活用(濫用

  • Super Technique 講座~マクロの技

    質的にC言語はトリッキーな言語ではない。だから、トリッキーな技は特定機能に集中する傾向があり、そのような機能とは「マクロ」と「ポインタ」である。 引数展開マクロの小技 DRY原理とプロトタイプ宣言 グローバル変数管理 関数ポインタ配列のプロトタイプ宣言と定義 引数展開マクロの小技 一般論としては、マクロは define 文によって即値定数を記号定数で定義しなおす、というのが真っ当な技であるが、これは今更触れるほどの内容はない。それでも次のようなテクニックはある。 #define swap(type,a,b) {type tmp=a;a=b;b=tmp;} int x = 10; int y = 20; swap( int, x, y ); これは引数展開マクロを使って、いわゆるSWAPを実現する簡単なマクロである。よく類書にこれは「次のように使うと問題がある」とされる。 if( z )

  • C 言語 マクロ講座 ## 実用編: uyota 匠の一手

    ## の使い方だが、個人的に主に使うのは次の二つの場合だ。型違いの同じ関数をいくつも作りたい時。そして、複数の関数ポインタを含む構造体の配列を初期化する時。今回は前者の例をあげる。 各型に適した fread と fwrite を書くことにしよう。今回は、int 型、char 型と double 型を実装する。 % cat read_x.c #ifndef LIB #include #endif #define FREAD(type) \ size_t fread_ ## type(void *p, FILE* fd) \ { \ return fread(p, sizeof(type), 1, fd); \ } #define FWRITE(type) \ size_t fwrite_ ## type(void *p, FILE* fd) \ { \ return fwrite(p, si

  • Kurusugawa – Kurusugawa Computer Inc.

    ビジネスに役立つ AI をお届けします 来栖川電算は AI 技術の研究開発から応用まで幅広いサービスを提供する名古屋工業大学発ベンチャー(2003 年設立)です。未踏ソフトウェア創造事業の採択者やソフトウェア分野の様々なコンテストの入賞者が在籍しています。最先端の AI 技術だけでなく、膨大な高品質データを生み出す技術、ハードウェアの限界性能を引き出す実装技術、高品質なソフトウェアを実現する設計技術にも定評があります。 手軽に使える様々な認識エンジン 来栖川電算の認識エンジンを活用すれば、センサーデータに埋め込まれた意味を手軽に抽出できます。種類ごとに用意された認識エンジンは教師データや設定を変えるだけで様々なタスクへ応用できます。LinuxAndroid・iOS 用のライブラリ、WebAPI、コマンドラインツールなどプログラマフレンドリーな SDK を提供しています。トレーニングやコン

    Kurusugawa – Kurusugawa Computer Inc.
  • マクロをもっと活用せよ (1) « New White 4.90

    C言語には「マクロ」と言うものがあります。 多くの人は定数宣言くらいにしか使っていないかと思います。 人によっては、const宣言で定数を定義しているかも知れません。 C時代では、非常に簡素な関数を定義する際、パフォーマンスを上げるためにマクロが使用されました。 ・・・が、C++ではそれもinline関数として置き換えられていたりします。 (しまいには、/が使えるような新しいCコンパイラでは、C言語なのにinlineが使えたりもするみたいです) 型名のリネームでさえ、typedefと言う更に便利がものがあります。 ・・・所詮、マクロなんてものは、古き時代の名残の産物でしかないのでしょうか・・・? いいえ、そんな事はありません。 マクロにしか出来ない事はまだまだ沢山あります。 例えばよく使われるマクロとして、次のようなものがあります。 #define SAFE_RELEASE(p)

  • PRE00-C. 関数形式マクロよりもインライン関数やスタティック関数を使う

    PRE00-C. 関数形式マクロよりもインライン関数やスタティック関数を使う マクロは危険である。物の関数と同じように使えるが、セマンティクスが異なるからである。C99 からは、C 言語仕様にインライン関数が追加されている。インライン関数とマクロのどちらでも使える場合には、インライン関数の方を使うようにすべきである。関数をインライン関数として定義すると、例えば、通常の関数呼出しの仕組みの代わりに インライン置換 が行なわれることで、処理速度の向上も期待できる。(「PRE31-C. 安全でないマクロの引数では副作用を避ける」、「PRE01-C. マクロ定義中で参照する引数名は括弧で囲む」、および「PRE02-C. マクロ置換リストは括弧で囲む」を参照のこと。) インライン置換は、テキストの単なる置き換えではなく、また、新しい関数を作成することもない。例えば、その関数体内で使われるマクロの

    PRE00-C. 関数形式マクロよりもインライン関数やスタティック関数を使う
  • pine -program diary-: C 言語 & 疑似テンプレートによるスタックの実装

  • nxmnpg.com

    DOISHIGERU
    DOISHIGERU 2012/12/26
    システム情報の取得設定
  • 1