タグ

cに関するshunuhsのブックマーク (12)

  • GCC some extensions

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

    shunuhs
    shunuhs 2006/08/03
  • Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能

    GNU Cは、 ANSIの標準Cにはない特徴的な言語機能をいくつか提供しています (`-pedantic'オプションは、 これらの機能が使われた場合に 警告メッセージを出力するようGNU CCに対して指示するものです)。 条件コンパイルにおいて、 これらの機能が利用可能であるかどうかをテストするためには、 __GNUC__というマクロが事前に定義されているかどうかをチェックします。 この__GNUC__というマクロは、 GNU CCでは常に定義されています。 これらの拡張機能はCとObjective Cで利用可能です。 また、 そのほとんどはC++でも利用可能です。 C++にのみ適用可能な拡張機能については、 C++言語に対する拡張機能を参照してください。 式の中の文と宣言 GNU Cにおいては、 丸括弧()で囲まれた複文を1つの式とみなすことができます。 これによって、 1つの式の中でル

    shunuhs
    shunuhs 2006/08/03
  • フリーソフトウェア徹底活用講座(6)

    今回は,GCCを各種環境にインストールする際の注意点を解説し,続けてGCCで拡張されているC言語の仕様について,今回と次回の2回に分けて説明する.具体的には,今回は, ・式の中の文と宣言  ・ローカルに宣言されたラベル  ・値としてのラベル ・入れ子になった関数  ・関数呼び出しの構築  ・型の代入 ・typeofでの型の参照  ・拡張されたlvalue について,解説を行う. (編集部) 現在,インテルアーキテクチャで動作するLinuxマシンにGCCを導入することは簡単です.実際,インストールのためのパッケージやバイナリが数多く配布されています.それらを利用することで,とくに悩む必要はなくなりました. それでも通常のインストールが必要な環境の場合もあるので,詳細を説明をします. ● MS-DOSの場合 連載では,基的にLinuxで動作するGNUツールを扱っていく予定ですが,他の環境で

    shunuhs
    shunuhs 2006/08/03
    gccの拡張機能
  • memccpy() で文字列をコピーする - bkブログ

    memccpy() で文字列をコピーする 詳解Unixプログラミングを読んでいたところ、標準入出力ライブラリの章に「この例からわかることは、行単位の関数は memccpy(3) を用いて実装されていることである」という記述がありました。 一瞬、memcpy(3) の誤植かと思いましたが、調べてみると 4.3 BSD で追加された関数ということがわかりました。 glibc に入っているので Linux でも使えます。 マニュアル によると memccpy() は次のような関数です。 書式 void *memccpy(void *dest, const void *src, int c, size_t n); 説明 memccpy() はメモリ領域src からメモリ領域dest に最大でnバイトコピーする。nバイトコピーする前に文字 c が見つかると、そこでコピーを中止する。 返り値 memc

    shunuhs
    shunuhs 2006/06/25
    memcpyのtypoかと思った
  • いやなブログ: Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか

    Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか 通常、Linux の共有ライブラリを作るときは各 .c ファイルを PIC (Position Independent Code) となるようコンパイルします。しかし、実は PIC でコンパイルしなくても共有ライブラリは作れます。それでは PIC にする意味はあるのでしょうか。 さっそく実験してみます。 int func () { printf(""); printf(""); printf(""); } PIC でコンパイルするには gcc に -fpic または -fPIC を渡します。-fpic の方が小さく高速なコードを生成する可能性がありますが、プロセッサによっては -fpic で生成できる GOT (Global Offset Table) のサイズに制限があります。一方、-fPIC はどのプロセッサで

  • 最小なユニットテストフレームワーク - ふにゃるんv2

    今日も今日とて、ネットでぐるぐる〜。 おそらく世界一導入の簡単なUnit Testフレームワーク http://vimrc.hp.infoseek.co.jp/diary/2006-02.html#2006-02-07-3 と、面白そうなネタを見つけたんですよ。 JTN002 - MinUnit -- a minimal unit testing framework for C http://www.jera.com/techinfo/jtns/jtn002.html#Source_Code で、ユニットテストのコードが、↓以下の3行。 /* file: minunit.h */ #define mu_assert(message, test) do { if (!(test)) return message; } while (0) #define mu_run_test(test) d

    最小なユニットテストフレームワーク - ふにゃるんv2
  • Kazuho@Cybozu Labs: C の仲間

    « Suica、おさいふケータイ、満員電車 | メイン | C-0.05 » 2006年02月01日 C の仲間 C の仲間が増えました。 Cのワンライナー C言語のワンライナー"C(らーじしー)"をpythonで実装してみた。 (from sh1.2 pyblosxom, by shunuhs さん) Embedded-C 公開 というわけでできたのが、Embedded-C。端的にいえば、ERB や EPerl の C 言語版。 1/6日に触れた 奥君の Large-C との関係は、 perl -e と eperl の関係とか、irb と erb の関係……ってこれじゃさっぱりわからないか(苦笑)。 (from こめんと, by 大岩君) shunuhs さんの PyC は、C-0.03 の Python によるクローン。Python だとキレイですねぇ。 #とかいうと、お前の Perl

    shunuhs
    shunuhs 2006/02/07
    Cのpython実装のpyCについて書いていただきました
  • The CINT C/C++ Interpreter

    shunuhs
    shunuhs 2006/01/28
    C/C++のインタプリター
  • Kazuho@Cybozu Labs: C - a pseudo-interpreter of the C programming language

    « URL と Base64 | メイン | C-0.02 » 2006年01月06日 C - a pseudo-interpreter of the C programming language PerlRuby では、ワンライナーで処理が書けて便利です。でも、なぜか C では書くことができません。仕事上の都合で、小さな処理を C 言語で書く必要があったので、ワンライナーも書くことのできる C 言語のインタプリタ(?)を作ってみました。 ダウンロードして、 /usr/bin にでもコピーすれば、インストール完了です。 2005/01/10 追記: 最新情報は Cインタプリタ アーカイブをご覧ください 使い方は、こんな感じです。 % C -e 'printf("hello world\n"); hello world % C --help C - a pseudo interpret

    shunuhs
    shunuhs 2006/01/27
    Cのワンライナー。システムコールの確認とかにすっごい便利!素晴らしい。
  • <h2>C言語によるアルゴリズム(コメント付き)</h2>

  • http://tociyuki.cool.ne.jp/clife/comp/cryptcrypto.html

    shunuhs
    shunuhs 2005/08/14
    libcryptとlibcryptoの違いか・・・まぎらわしい。
  • MODx Content Manager »

    MODx encountered the following error while attempting to parse the requested resource:

    shunuhs
    shunuhs 2005/08/14
  • 1