演習で使った C++ のテンプレートに関する資料を中途半端ですが公開しときます。暇があってやる気が出たら追加や書き直しをするかも。 テンプレート一般 template の適当な説明 コンパイル時の計算 コンパイル時のコード生成 traits とは policy とは typename は何故必要か
現在、アセンブラを使わなければならないという状況はあまりありませんが、最適化をする場合はアセンブラを知っている方がなにかと有利です。特に、コンパイラの吐いたコードを吟味することはとても重要です。よってここでは、アセンブラコードを読む能力と、簡単なアセンブラコードを書く能力を身に付けることを目標とします。 この記事は Windows 上で VC++ を使う場合を想定して書いていますが、BCC でも殆ど同じですし、gcc でも少し書き方を変えれば使えます。Intel のプロセッサ上で動く Linux 等でも基本的な部分は同じですし、命令セットの異なるプロセッサでも、基本的な部分は役に立つと思います。ターゲットは Intel Pentium 系プロセッサです。 第0回 アセンブラってどういうもの? 第1回 代入と基本的な演算 第2回 定数とメモリの扱い 第3回 レジスタについて 第4回 分岐命
イントロダクション プログラムの規模が大きくなってくると、ビルドにかかる時間が増えてしまって困ります。1行直してビルドボタンを押しただけでも、関係のないファイルまで次々と再コンパイルされ、イライラすること必至です。 一体どうしてこんなことになるんでしょうか? それは、それらのファイルが実際には関係のあるファイルだからです。ファイル間に依存性があるから、1つ手を加えただけで次から次へと芋蔓式に再コンパイルされてしまうのです。やねさん風に言うなら、この癒着を断ち切らずしてクリーンな政治、もとい、効率的なコーイディングはできない、といったところです。 具体例 では、依存性のある具体的な例を見てみましょう。 // cat.h // Cat クラスの実装は cat.cpp で行っている #include "date.h" #include "breed.h" #include "country.h"
最近 Erlang でコードを書くときにカバレッジをとっている。TDD で開発を進めていて make check するとテストが走る。テスト終了後にブラウザでカバレッジが表示されるようにしてある。カバレッジの重要性はCode Completeを読むとよく分かる。カバレッジをとると安心感が違う。書いたコードの不安な部分(不吉なにおいのする場所)を「テストが実際に実行しているか?」を確認できる。その確認により不安から解放され、目の前のコードに集中できるようになる。しかもカバレッジで判明する実行されていない部分にはたいていバグがある。 さて最近 Mona の安定性を上げるべく色々試しているのだが w3m で多くのサイトを訪れたり、Mosh の起動・終了を繰り返すとカーネル内の malloc が NULL を返す現象に悩まされている。最初はメモリリークしているだけだと思っていたがよく調べてみると、
[ パソコン ] うきウィキ!Wiki!! メモメモWiki、個人的なメモWikiです。リンクフリーで、内容保証は皆無です。(メモなので…)検索エンジン対策、便利ツール、バックワードリンク有効リンク先…など。萌え燃えスタイルは今の流行(オマケ)です。 編集 履歴 添付 設定 新規ページ作成 カテゴリー Wiki内検索 タグ 書籍・関連商品 リンク 最新コメント フリーエリア ウィキの読者になる QRコード メニュー 最近更新したページ 2013-10-20 アニメとか・・・ 2013-09-29 アニメ:うぽって 2013-09-23 アニメ:GUNSLINGER GIRL(2002~) アニメ:攻殻機動隊(1995年〜) 2012-01-07 メモ書き 2011-11-09 旧型パソコンパワーアップ(メモ) 2011-10-23 アイデアプロセッサ(フリーソフト) Ubuntu メモ 2
C言語において実行時間を測定する為の方法はいくつかある。gettimeofday, clock, getrusage, timesを利用する方法である。ここではこれらの方法について検証してみる。これは2005/12/30時点での情報であり、古い亊が考えられるので注意して頂きたい。さらに、内容のほとんどはmanを移しただけなので、正確な情報を得るためにそれぞれの関数のmanを見ることを強く推奨する。 System: Linux 2.6.12 glibc: glibc 2.3.5-1ubuntu12 gettimeofdayを使用する方法 通常はこの関数を使用するのをお勧めする。 gettimeofdayはSVr4, BSD 4.3準拠である。返り値の型はsys/time.hに定義されるstruct timevalで有る。
まだ完成途中です back 注意: このページの内容には、おそらく多くの間違いがあります。 リンクされているので残しておきますが、利用には注意してください。(2008年3月、新山) ここではおもに make の使い方 と Makefile の書き方について 説明しています。じつは make の種類にはいろいろあり、ここでは GNU make (gmake というコマンド名のこともある) を 対象にしています (BSD の pmake でも基本的な部分は同じですが、 マクロ定義などは違うところもあるので注意してください)。 わかりにくい箇所とか、まちがってる箇所がある場合はメールください。 Contents make はどんなときに使うか Makefile を作る make の実行 Makefile の文法リファレンス 多段 make について (未完成) Makefile の例 (未完成)
ネットワークサーバー実装のためにuIPのソースを読もう。 NICドライバの移植のためにFreeBSDのソースを読もう。 ということで以前使っていた etags を使おうと思ったがキーバインド忘れた。 そして etags はなんだかいろいろ不満点があった気がするので GLOBALを使ってみることに。 以前GLOBALは出力をHTMLにして使ったことがあるのだが、最近EmacsにどっぷりなのでEmacsから使ってみることに。 0.GLOBALって何? GNU GLOBAL は、ソースコードに索引付けを行うことで、大規模システムのハックやレビューを効率化するソフトウエアです。 ソースファイル中の指定したシンボルを高速に見つけ出し、素早くその場所に移動することができます。多くのサブディレクトリからなり、#ifdef や main() 関数を沢山含んでいるような、いわゆる巨大なプロジェクトをハックす
emacsでc++開発を行うための情報を集めました。まとめをここでしています 以下それぞれのリンク Emacs で C 言語プログラミングを始める人へのイントロダクション 初心者向けdocment 以下の2項目が役立つ タグジャンプ ここで説明しているtagファイルの作成方法 $ find . -name "*.[chCH]" -print | etags - はubuntu7.10では動かなかった 関数名の補完入力がM-tabでできる タグジャンプはここで説明してるetagより後述のgtagの方が便利 Benjamin Rutt's Emacs C development tips (English) complieをする窓の大きさを小さめにする方法 インデントを自分好みにする方法 etagの使い方。Emacs で C 言語プログラミングを始める人へのイントロダクション よりも詳しく解説
Java Native Interface (JNI) は、Javaプラットフォームにおいて、Javaで記述されたプログラムと、他のプログラミング言語(たとえばCやC++など)で書かれた、実際のCPU上で動作するコード(ネイティブコード)とを連携するためのインタフェース仕様である。Java言語からネイティブコードを利用するためのABIと、逆にネイティブコードからJavaバイトコードを動作させるためにバーチャルマシン (VM) を利用するためのAPIの2つから成る。 JNIを使うことで、Java言語のVMで動作させるには処理速度の面で不利とされる計算量の多いプログラムを部分的にネイティブコードに置き換えて高速化したり、標準Javaクラスライブラリからはアクセスできないオペレーティングシステムあるいはハードウェアの機能を利用するプログラムを、あたかも通常のJavaクラスのメソッドのように呼び出
□ main の戻り値の型は void でなく int OS環境下のCプログラムでは 基本的に int main(void) { printf("hello,world\n"); return 0; } のように必ず関数の戻り値の型を int にして、return で値を返すように書きます。 return 値は OS に返すエラーコードで 0ならば正常終了 0以外ならば異常終了 となっており、C標準関数のexit関数の引数の値と同じものが指定できます(exit関数は、プログラムを終了させる関数で、その引数はOSに返す値になります)。 もっとも main の return 値がこのように決まったのは ANSI-C89/ISO-C90 からで、それ以前(K&R)では return 値 の扱いが不定なことから void main() { printf("hello,world\n"); exit
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く