グローバル領域に以下の一行を書く <script> var currentScript = (function (e) { if(e.nodeName.toLowerCase() == 'script') return e; return arguments.callee(e.lastChild) })(document); alert(currentScript); </script>こうすることで、currentScript はこの script 要素を指す。 いちおう説明 DOM は構築されるときに、上から順番に構築される。そして、script タグがあると、 script 要素を構築したあとに、スクリプトを実行する。 つまり、スクリプトが実行されたとき script 要素は今まさに作られたばかりであり、それよりも後ろの要素が存在しない。さらにこの script 要素を含むすべての要
「C/C++ 関数・マクロ集」というタイトルですが, そのうちのいくつかはC専用だったりします.(苦笑) 2007/06/24(日) 追記 高木さんより, Cの規格上移植性に問題がある点をご指摘いただいたので, 現在修正中です. (たくさんあります….orz) とはいってもその多くは, めったにお目にかかれないような珍しい処理系とか, 「そんなの実在するの?」という処理系に移植する場合の話なので, 実用上ほとんどの場合は問題ないと思います. (一部そうとはいえないものもありますが.) Cの規格に照らして完全に「処理系・OS 非依存」 にするのは困難な場合もあり, 完璧な移植性にこだわるあまりプログラムが書けなくなっては本末転倒なので, タイトルに「ほぼ?」を入れました.orz 2007/06/21(木) 追記 このページを含め,私が C/C++ 関連記事を書くに当たりたびたび参考に&リンク
C#の場合 class Object { public int Value { get{ return mValue;} set{ mValue = value;} } private int mValue; } obj.Value = aValue; get/setメソッドの中にデバッグ出力などの処理を入れることができる。それならC++でもできる話だが,これが obj.Value = aValue; のように変数への代入のように書けるのがポイント。 これを C++でも実現できないか?というのが主題。最終的に次のようなコードを書けるようにする。 int main(int argc, char* argv[]) { A a; a.Visible = false; if (a.Visible) printf("a is visible?n"); else printf("a is n
初出:2001/12/12 最終更新:2005/07/25 私がGreenPadを作ろうとしたときに 調べてまわって作ったリンク集です。OSやToolkit提供のコンポーネントを 使うのではなく、「独自のテキスト編集コンポーネントを一から作る」場合に 参考となるものを集めました。Windows系に偏っている感が無きにしもあらず。 ソースコードの公開されているエディタやコンポーネント C GNU Emacs (色々な環境) JED (Unix,VMS,MSDOS,OS/2,BeOS,QNX,Win) Meadow (Win) nedit (Win) ne (Unix) Ng (AMIGA,Human68k,MSDOS,Unix) TextMaid (Win/GTK+) tolstoj (Win) vim (色々な環境) C++ Alpha (Win) GreenPad (Win) kajer
RAII と setjmp/longjmp C++ には RAII (Resource Acquisition Is Initialization) というイディオムがあります。これはリソースの開放を確実に行うためのテクニックとして C++ のプログラムで広く用いられています。しかし、RAII も setjmp/longjmp という落とし穴があります。 RAIIの基本 次のプログラムはメモリリークを起こします。 #include <string> using namespace std; int main() { string *p = new string; return 0; } このプログラムをビルドして valgrind でテストすると次のようなエラーメッセージが表示されます。4バイトのメモリリークが検出されました。 % g++ test.cc % valgrind ./a.ou
Emacs エディターで C 言語のプログラムを書く人向けに、入門用の解説がないように思う。そこで、知っておくと便利な機能をまとめてみた。 読者は、Emacs の操作とカスタマイズが最低限できる人を対象にしている。つまり、C-x C-f といったショートカット・キーが使えて、.emacs の設定ファイルがいじれる人。各機能について、基本的な使い方とその効果、あと最低限の設定について書き出した。 目次 ソースの色付け インデント アラインメント コメント info マニュアル スペル・チェック タグ・ジャンプ 関数名の補完入力 コンパイルとエラー行ジャンプ ChangeLog ファイル 1. ソースの色付け Emacs は、C 言語のソース・ファイルを解析して、if や for といったキーワードに対して、自動で色を付ける。 色を付けることでソースにメリハリが生まれ、可読性が上がる。また、ス
このページは、C言語の中級テクニックを中心に解説する。長らくプログラマをしていると、C言語の面白い使い方例が蓄積している。これらを一挙公開するために、このページを作ったのである。しかし、単にCに留まらず、他の言語の面白い特徴なども紹介していく。 内容的にはかなりヘヴィである。当然のことながら、「ポインタ虎の巻」程度の内容はちゃんと使いこなせることを前提とする。意外な技、落し穴、派手なテクニックなど、内容満載だが、ちゃんとデータ構造とアルゴリズムなども説明できれば良いと思う。(まあ、ぼちぼちやってきいます...) 以下の目次には手引きのために、評価がつけてある。凡例として示す。 レベル その解説で記載されている内容のレベル 有用度 その内容が実際に役に立つものかどうか 邪悪度 その内容が薦める方法が、一般的なコーディング規約の中で「邪悪」とされがちなものであるか否か。関数ポインタの活用(濫用
高林さん、オライリーさん、ありがとうございます。 ちなみにetoさん情報によると、明日11/10は「いいバイナリの日」らしいです。 11 → いい 10 → バイナリ Binary Hacks の発売日は 11/11 で、ビットが全部立っている非常に縁起の良い日です。 縁起を担ぐためにも、いいバイナリの日に Binary Hacks を注文して、発売日に書店に行って本を見かけたら 11 冊買いましょう。 x86 パフォーマンスチューニング さて、最後の HACK #100「文献案内」でマイクロプロセッサアーキテクチャマニュアルが紹介されていましたが、 x86のパフォーマンスチューニングつながりということで、 ちょうど今日ラボの社内掲示板で盛り上がった話題をこちらでも共有したいと思います。 * popCount 問題 64bitの数値の中で1になっているビット数を数える popCount64
文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)
こちらは独自ドメインからレンタルサーバー、フレッツ接続専用会員までトータルサポートのプロバイダー、BiG-NETです。 いつも弊社ユーザーのページにアクセスをして頂きましてありがとうございます。 http://www.big.or.jp/~crane/cocoa/ 404 Not Found (ファイルが見つかりません) 申し訳ございませんが、お客様がアクセス要求されました上記ページは、現在アクセスが出来ません。 弊社では、なぜアクセスできないのかと言う第三者からのお問い合わせにはお答えすることが出来ません。 もしこのページの関係者をご存知でしたら、連絡を取ってみることをお薦め致します。 何卒ご容赦下さい。
こちらのサイトは新サイトへ全面移行しました。 URL は http://www.keicode.com/ です。 新しいサイトもご愛顧くださいますようお願い申し上げます。
プロフィール 働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。 目次 ホーム 連絡をする RSS Blog 利用状況 投稿数 - 546 記事数 - 0 コメント - 1700 トラックバック - 記事分類 過去の記事 2013年03月 (1) 2012年10月 (1) 2012年09月 (4) 2012年01月 (2) 2011年12月 (1) 2011年11月 (1) 2011年10月 (5) 2011年07月 (5) 2011年06月 (4) 2011年05月 (4) 2011年04月 (6) 2011年02月 (4) 2011年01月 (3) 2010年11月 (3) 2010年03月 (1) 2010年01月 (4) 2009年1
設定の保存について VC++6.0 でアプリケーションを作成すると、何にもしない実行可能ファイルでも 40KB になってしまいます。これってすごい無駄な気がしますよね…。 ここでは、実行可能ファイルのサイズをダイエットする方法を解説します。 ファイルサイズ = 4KB×n VC++6.0は、デフォルトでファイルのサイズを 4KB(4096byte) の整数倍になるように調整します。このようにしないと、Windows98 が実行ファイルを正しくモメリキャッシュできないようです。しかし、オンラインソフトとして公開する場合は、ダウンロードにかかる時間を少なくしたいのも事実です。また、これから NT系の OS が増えてくることを考えると、この機能は無駄な気もします。 ファイルサイズが 4KB の整数倍にならないようにするには、リンカオプションで/OPT:NOWIN98を指定して下さい。ソースのどこ
複数のプロセスでロック状態が異常であると判断し,そのうちの 1つがロックを解除したことにより,別のプロセスがロックしたにもか かわらず,先ほどロック状態が異常であると判断したプロセスによってこの正常なロッ クを解除されてしまう可能性があります. この方法の問題点は,異常なロック状態を解除する操作が正常なロック状態をも 解除できてしまうことにあります.逆に言えば,異常なロック状態を解除する操作に よって正常なロック状態を解除できなければ問題ないわけです.そのためにはどうす ればよいのか? 答えはロック状態が常に変化していけば よいということです.そして,これを実現するのに都合がよいのが rename による方法になります. 最初のスクリプトで説明しますと,ロックファイルが lockfile という 名前のときがロックが解除されている状態で,lockfile987654321 のよう に後ろに
See also my blog Contents Optimization manuals Vector class library Object file converter and disassembler Subroutine library ForwardCom: An open standard instruction set for high performance microprocessors Test programs for measuring clock cycles in C++ and assembly code Floating point exception tracking and NaN propagation CPUID manipulation program Links Optimization manuals This series of fiv
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く