タグ

c++とCに関するneumannのブックマーク (19)

  • 微分積分

    静岡理工科大学情報学部コンピュータシステム学科菅沼研究室のページです.主として,プログラミング言語( HTML,C/C++, Java, JavaScript, PHP, HTML,VB,C# ),及び,システムエンジニアとしての基礎知識(数学,オペレーションズ・リサーチやシステム工学関連の手法)を扱っています.

    neumann
    neumann 2009/02/28
    コンピュータの歴史書のような風情
  • 【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル

    google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト

    neumann
    neumann 2009/01/29
  • Re: [RFC] Convert builin-mailinfo.c to use The Better String Library.

    On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > When I first looked at Git source code two things struck me as odd: > 1. Pure C as opposed to C++. No idea why. Please don't talk about portability, > it's BS. *YOU* are full of bullshit. C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate tot

    neumann
    neumann 2008/12/18
    the only way to do good, efficient, and system-level and portable C++ ends up to limit yourself to all the things that are basically available in C.
  • autoreconfを使って簡単にビルド環境を作る - にたまごほうれん草アーカイブ

    前回も軽く触れたけれども、automake/autoconfでビルド環境を作るのは少し面倒な印象があった。 ところが、autoreconfを使うと途中の面倒な作業を大幅に軽減できることがわかったので、メモがてら一連の流れについて書くことにする。 手順 ソースコードを用意する Makefile.amを用意する configure.acを用意する autoreconfを実行 あとは./configure && make && make install 1. ソースコードを用意する 今回は、以下のような簡単なソースコード(hello.c)からhelloという実行バイナリを作成するプロジェクトを作成する。 #include <stdio.h> int main(int argc, char* argv[]) { printf("Hello, world!\n"); return 0; } 2. M

    autoreconfを使って簡単にビルド環境を作る - にたまごほうれん草アーカイブ
    neumann
    neumann 2008/11/11
    今はこんなことになってたんですね!! autoreconf -vfi
  • C言語: 実行時間測定の方法

    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で有る。

    neumann
    neumann 2008/10/27
    時間 計測
  • Supplement for patch (compile error)

    症  状(コンパイルエラー) 最近のCコンパイラ(gcc)でコンパイルする場合, glib のバージョンによっては, src/pad2ps/pad2ps.c のコンパイル時に, error: initializer element is not constant といった,エラーが生じます。 原  因 出力ファイルのポインタ変数 fp の初期化, FILE *fp = stdout; の部分が該当します。 標準出力 stdout が構造体のためです。 エラーを回避するために,この初期化をしないでコンパイルすると, pad2ps 関係のコマンド実行時に出力ファイル名を指定しないと, Segmentation fault (core dumped) となる不具合が生じます。 対処パッチ ( src/pad2ps/pad2ps.c ) #if defined(__linux__)

  • 3.C/C言語

    計算機アーキテクチャとC/C++ 変数や関数名の有効範囲 派生型 関数 クラス 承継・基クラス・派生クラス ライブラリ 総目次に戻る 計算機アーキテクチャとC/C++ Keywords:要素,farポインタ,C,C++,アーキテクチャ Cは「高級アセンブラ」とも言われるように,計算機の一般的な構成を知っていると学習に有利です.アセンブラ・プログラマから見た計算機の構成を「アーキテクチャ(architecture)」と呼びます. 計算機にはCPU(Central Processing Unit;中央処理装置)があって,メモリ(main storage)上の機械語プログラムを逐次読み込み,解釈し,実行します.パソコンなどのCPUには8程度の16/32ビットの汎用レジスタ(general-purpose registers)があり,その内容は単なるビット・パターンとして使われることもあれば,

    neumann
    neumann 2008/08/11
  • C-users.jp - 日本のC/C++ユーザのためのハブサイト

    neumann
    neumann 2008/06/13
  • C/C のポインタの機能--参照渡し - page2 - builder by ZDNet Japan

    ポインタとは ポインタはC/C++言語の特徴的な機能のひとつである。ポインタ(pointer)を直訳すると「指し示すもの」であり、別の変数や文字列定数の場所を指し示すために使う。また、ポインタを指すポインタ(ポインタへのポインタ)というものも存在する。 このページをお読みいただいている読者にあっては、「C言語 ポインタ」「C++ ポインタ」などのキーワードでWeb検索をしたことがあるかもしれない。そうするとポインタに特化した内容の書籍をいくつか見つけられる。それだけ奥が深い機能ということである。 ポインタの用途 では、ポインタはどんなところで使われているのだろう。C/C++言語では、あらかじめ定義されている関数が多数存在するが、その一覧には、*(アスタリスクあるいはアステリスク)が付いているものをよく見かける。 これらはポインタを表し、主に文字列の操作やファイルをはじめとするデータの入出力

    C/C のポインタの機能--参照渡し - page2 - builder by ZDNet Japan
    neumann
    neumann 2008/04/17
    ネタ
  • WisdomSoft

    WisdomSoft(旧) このサイトはすでに運用を停止しています。 新しいコンテンツはこちらをご覧ください ■Products■ 書籍 ソフトウェア 読C 読Java Javaアプリケーション作成講座 Windowsゲームプログラミング ゲームエンジン プログラミング C#ゲームプログラミング Cisqua Developers Network プログラミング システムとAPI C言語入門 C++入門 C#入門 D言語入門 Java言語入門 Objective-C入門 Lisp入門 Perl入門 PHP入門 アセンブリ言語入門 Win32 API入門 標準 Windows API コモンコントロール マルチメディア API Windows ソケット JavaAPI入門 AWT入門 Swing入門 ネットワーク入門 Microsoft .NET入門 DirectX入門 OpenGL入門

  • C/C++ Technical Documents

    C++ 寄稿記事 επιστημη 氏から寄稿していただいた、開発者の方々にお役に立つテクニカルドキュメントです。Articles、References、Miscelaneousに分かれて説明しています。初心者の方からプロの方まで役に立つ読み物と資料集です。是非、開発のお役にお立て下さい。 Articles: 読み物 References: 資料集 Miscelaneous: 番外編

    neumann
    neumann 2008/02/16
  • memologue - UNIX上でのC++ソフトウェア設計の定石 (2)

    鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正

    memologue - UNIX上でのC++ソフトウェア設計の定石 (2)
    neumann
    neumann 2007/12/12
    レースコンディション 競合状態
  • C++アプリケーションの効率的なテスト手法(CppUnit編) ― @IT

    第2回 C++アプリケーションの効率的なテスト手法(CppUnit編):連載 C++開発者のための単体テスト入門(1/4 ページ) 連載目次 前回は単体テストの重要性を示し、従来のC/C++でのテスト手法であるprintf関数やassertマクロを使ったテストを紹介しました。この2つのテスト手法は開発環境(コンパイラとライブラリ)さえあれば利用でき、その使い方も簡単です。しかしながら、いずれも系統立てて、効率よくテストを行うには力不足の感が否めません。 今回は、Visual C++ 2005 Express Editionを含むVisual Studio 2005(以後、VS 2005)で利用できる代表的な単体テスト・フレームワーク(Unit Test Framework)の1つである「CppUnit」を紹介します。 ■単体テスト・フレームワークとは? 前回、「バグは早期発見が望ましい。早

    C++アプリケーションの効率的なテスト手法(CppUnit編) ― @IT
    neumann
    neumann 2007/08/18
  • memologue - C/C++の定数の型の話, C90/C99の差分のびみょーな話

    Cのソースコードに m = 195; とか n = 0xffffffff; とか書いたときの定数(右辺)の型って、なんであるかご存じでしょうか? また、C90(1990年版のISO C言語規格)とC99(1999年版のそれ)ではその型が微妙に異なったりすることがあるんですが、ご存じでしょうか? さらには、お使いのマシンがILP32であるかLP64であるかLLP64であるかによっても、微妙に型が違ってきたりするんですが、それについてはどうでしょうか? えーもちろん、普段は「Uがついてなかったらint, Uがついてたらunsigned intジャネーノ?」くらいの理解でも殆ど不自由しないわけですが、詳細な理解がないとハマるケースも稀にあります。 私はというと、上に書いたような事は、C90/99の差違を除いてはだいたい理解しているつもりだったのですが、C90/99の差異について無頓着だったがため

    memologue - C/C++の定数の型の話, C90/C99の差分のびみょーな話
  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • C/C++ Reference

    Function objects − hash (C++11) Swap − Type operations (C++11) Integer comparison (C++20) pair − tuple (C++11) optional (C++17) expected (C++23) variant (C++17) − any (C++17) bitset − Bit manipulation (C++20)

    neumann
    neumann 2005/07/16
  • 安全な DLL の中にあるC++ のクラスのエクスポート

    最初に DLL とは? Windows には Dynamic Link Library ( 以下 DLL ) という、プロセス開始時・起動中に動的にライブラリをリンクする機能があります。このDLL を使うことで、 プログラムを他のアプリケーションと共有してメモリの節約になる 普通のライブラリとしても使え、アイコンやダイアログなどのリソースも格納することが出来る。 DLL の中にある処理やリソースを変更して DLL の変更のみでプログラムを修正することが出来る プロセス間でのメモリ共有を行うことも出来きる UNIX系にも似たような動的リンクライブラリがありますが、UNIX系のはコンパイラ側での対応であり、C言語のソースコードで互換性を保っているUNIXのアプリケーションで、動的にバイナリをリンクしにくい性質があるため、それほど使える機能ではないでしょう。 逆に DLL の欠点 DLLのバージ

    neumann
    neumann 2005/07/05
  • C++: 水面下の仕組み - Microsoft Visual C++ Web Site

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    C++: 水面下の仕組み - Microsoft Visual C++ Web Site
    neumann
    neumann 2005/06/19
  • 「C の重要性は高まっている」:同言語の生みの親が主張 - CNET Japan

    英国オックスフォード発--プログラミング言語C++の生みの親である人物によると、一部の開発者らがJavaやC#などの、C++より後に生まれたプログラミング言語に見切りをつけ、再びC++を使用するようになっているという。 テキサスA&M大学の教授で、C++言語の開発者でもあるBjarne Stroustrupは米国時間20日、当地で開催されたACCUカンファレンスでインタビューに応じ、C++JavaやC#といった比較的新しいプログラミング言語に取って代わられようとしているという認識は誤りであると指摘した。 「C++の重要性は現在、かつてないほど高まっている。300万人以上ものプログラマが現在、C++を利用している。C++を採用するプロジェクトは日ごとに増えており、同様の傾向がいたるところで見受けられるようになった。大学でもこれまではJavaに関する授業が多かったが、今ではより多くの時間が再

    「C の重要性は高まっている」:同言語の生みの親が主張 - CNET Japan
  • 1