タグ

cとprogに関するyoppiblogのブックマーク (11)

  • Const and Optimization in C

    Today there was a question on /r/C_Programming about the effect of C’s const on optimization. Variations of this question have been asked many times over the past two decades. Personally, I blame naming of const. Given this program: void foo(const int *); int bar(void) { int x = 0; int y = 0; for (int i = 0; i < 10; i++) { foo(&x); y += x; // this load not optimized out } return y; } The function

  • Linux-Mrouted-MiniHOWTO

  • Programming with pcap | TCPDUMP & LIBPCAP

    Tim Carstens timcarst at yahoo dot com Further editing and development by Guy Harris gharris at sonic dot net Ok, let's begin by defining who this document is written for. Obviously, some basic knowledge of C is required, unless you only wish to know the basic theory. You do not need to be a code ninja; for the areas likely to be understood only by more experienced programmers, I'll be sure to des

  • Super Technique 講座~longjmpと例外

    プログラムの流れを制御する手段として、いわゆる「構造化構文(for とか if とか)」、悪名高い「goto 文」などがあるのは周知のことだが、かなり特殊なものとして、「setjmp, longjmp」による「非ローカル分岐」と呼ばれるものがある。この「非ローカル分岐」は「非ローカル」と言うだけあって、ある関数の中から、別な関数に制御を移すことができたりする。まあ、そのために乱用すべきではなく、注意して使わなくてはならないライブラリ関数なのだが、実はこれは JavaC++ で言語の上で実装されている「例外」の基礎となるものである。だから、まずこの標準ライブラリ関数「setjmp, longjmp」について解説しよう。 → Java 講座の「例外」 setjmp, longjmp とは どうやって実現してるの? setjmp/longjmp の利用例~インタプリタ 補追1:setjmp

  • Dynamic Double-Array Library

    ダブル配列 ( Double-Array ) とは, トライ ( Trie ) のデータ構造の一つで, 「小さい辞書で高速な検索」が特長になります. トライを表現したデータ構造ですから, 「入力文字列の前方部分列と一致するキーの検索」が可能です. 使い方としては,フィルタリングや構文解析,形態素解析などがあります. ライブラリとしては,おそらく Darts が有名です. Darts: Double-ARay Trie System

  • The C Preprocessor

    C 言語のプリプロセッサはマクロプロセッサであり、C コンパイラが実際のコンパイルの前にプログラムの変換を行うさいに自動的に使用される。マクロプロセッサというのは、マクロを定義できることから来ている。マクロは、ある構文に対する短縮形である。 C プリプロセッサには 4 つの独立した機能があり、目的に応じた使い方ができる。 ヘッダファイルの取り込み。ヘッダファイルは、読者のプログラムの中に置き換え可能な宣言の入ったファイルである。 マクロ展開。マクロを定義することにより、それをC 言語のコードの任意の断片の短縮形とすることができる。C プリプロセッサは、そのマクロがプログラム中に現れたなら、定義と置き換える。 条件付きコンパイル。特別なプリプロセッサ制御子を使うと、色々な条件に合わせてプログラムの一部を取り込んだり、取り除くことができる。 行番号の制御。複数のソースファイルを組み合わせたり、

  • one malloc to rule them all » Josh the Outspoken

  • GCC some extensions

    gcc(Gnu C Compiler)の拡張文法 [警告!] C/C++言語初心者はこのページを読まないでください。 このページではgcc独自のC/C++拡張文法について解説します。 これらの拡張文法が可能にする機構は確かに便利なのですが、 もちろんANSI規格に従っていないので、一般的には使うべきではありません。 C/C++言語文法を学び始めている初心者はこれらgcc拡張文法を 知るべきではありません。C/C++言語を正しく理解する上で大きな 支障となります。 C/C++言語を十分に熟知した者は、gccがこのようなこともすることを 「雑談」として知っておくと楽しいかもしれません。もちろん 実戦に使うべきではありませんが。しかし初心者が偶然に、これらの 機能を使ってうまくいく場合がありますので、そのような初心者を 見つけたら、それが標準規格ではないことを注意してください。 配列変数をコピー

  • Red-Black Tree C Code

  • Cマガ電脳クラブ

    今は廃刊になった 「CMAGAZINE」 という雑誌に「Cマガ電脳クラブ」というコーナーがありました。 このコーナーでは毎月パズルが出題されました。 読者はC言語を使ってパズルを解き、メールか、ディスクで応募します。 応募されたものの中から、解答が毎月紹介されます。 私は2000年の5月号から参加しています。 過去に、「ウサギと犬」、「REV STAR」、「見た目は月並みですが」、 「逆さ電卓数字」、「ひと筆長旅」、「切手切って乗りきって」、 「Good Dance」において紙面にて紹介されました。 「等しく分かれた立方体」では間違った解答で応募してしまいました。 「整数解の怪」は解くことができませんでした。 このページでは私の作った解答を掲載します。 ただし、「整数解の怪」は安藤英樹さんの解答を参考にしました。 「整数解の怪」の説明は安藤さんからメールで提供していただきました。 全てのパ

  • Code for Testing for Avalanche

  • 1