タグ

Cに関するcho45のブックマーク (8)

  • k.i.h.p - messageboard

    > digraph で <: が [ の意味になるので……なったからといってどうしようもないですね…ううむ digraphなんてものがあったんですか。初めて知りました。 これさえあればこんな感じでいけます。(最後の行に余計なものが増えましたが。) #include <stdio.h> #define X printf((char*)((int)&"\0ひだまりスケッチx365"[0] #define _ 1 + 1)) int main(void){ return ///////////////////////////////////////////////////////////////// X / _ / X <: "来週も見てくださいね!" ///////////////////////////////////////////////////////////////

  • B-LOGは移動しました

    B-LOGは移動しました B-LOGはhttp://blog.bugyo.tk/b-log/に移動しました。 ご迷惑おかけします。

  • ゆの in C(IOCCC風に) - 簡潔なQ

    ゆの in language defineを多用して中心となるコードをシンプルに見せてみた。あとmemcpyとstrcatとprintfを組み合わせたかんじ。 内部文字コードUTF-8でコンパイラはgcc-4.3.1を推奨。その他の環境でどうなっても知りません。 #define main b=0;char a[40]="ポケッチ×365 ";int c(int d,int f){(memcpy(&a[0],&"スケ"[0 return f?(strcat(a,(int*)d)):(printf("ひだまり%s\n",a));}main #define return ],3));return #define X c((int)&b #define _ 1,0 int main(int argc,char* argv[]) { X / _ / X <: "来週も見てくださいね!" return

    ゆの in C(IOCCC風に) - 簡潔なQ
  • [ruby-list:44393] Re: typedef unsigned long VALUE; に関して

    Subject: [ruby-list:44393] Re: typedef unsigned long VALUE; に関して From: "U.Nakamura" <usa@ r g o e . > Date: Thu, 27 Dec 2007 03:36:32 +0900 References: 44392 In-reply-to: 44392 こんにちは、なかむら(う)です。 In message "[ruby-list:44392] typedef unsigned long VALUE; に関して" on Dec.27,2007 02:46:36, <cruby47 / yahoo.co.jp> wrote: | 何か、重要な理由がありVALUEはvoid型のポインタとしては | 定義されていないと思うのですが、自分で考えていてもなかなか | 思いつかないので、そこの所を教えて

  • Super Technique 講座~longjmpと例外

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

  • C 言語によるオブジェクト記述法 COOL

    C 言語によるオブジェクト記述法 COOL ver.2 C-language's Object Oriented Language ver.2 [検索] 目次 0. はじめに 1. クラスの記述, 属性の記述 2. 操作の記述 3. クラス属性の記述、定数の記述 4. 初期化操作と後始末操作の記述 4-1.処理効率優先インターフェイス 4-2.再コンパイル不要インターフェイス 4-3.動的バインディング・インターフェイス 5. 状態取得操作と状態設定操作とイベントハンドラの記述 6. 集約の記述、継承の記述 6-1.集約の記述 6-2.継承の記述 6-3.多重継承の記述 6-4.重複継承の記述 6-5.動的継承の記述 7. 多態性(多相性)、インターフェイス継承の記述 7-1.多態性の記述 7-2.多態性を持った生成の記述 7-3.多重継承の多態性の記述 7-4.重複継承の多態性の記述 7

    cho45
    cho45 2006/08/20
  • 2005-12-13

    今日は、C言語の意外かもしれない仕様をいくつか。 配列の添え字のように見えるもの a[b] と書くと配列演算をしているような気分になるが、式の中に表れる a[b]は、(*( (a) + (b) ) ) の略記であり、ポインタの計算と何も変わるところがない*1。 というわけで: int a[] = {1,2,3,5,8}; int b[2][2]={{1,2},{5,9}}; a[3]=100; printf( "%d\n", 3[a] ); /* 3[a] は、*(3+a)なので、a[3] と同じ*/ b[1][0]=999; printf( "%d == %d\n", 1[b][0], 0[1[b]] ); /* どちらも b[1][0] と同じ */となる。 (foo()?a:b)[3] と書くよりも 3[foo()?a:b] と書いた方が短くなるので、ソースコードを1文字でも短くしよ

    2005-12-13
  • スタックオーバーフローのハンドリング (Stack Overflow Handling)

    作成日:2004.04.12 更新日:2006.02.19 更新記録 (2004.04.12) 3/6、 3/11、 3/13 の日記をまとめて作成。 (2004.05.07) 文章を修正。サンプルコードを追加。 (2005.01.20) alternative → alterante に修正。 (2005.02.13) 追記を記述。 (2006.02.17) linux_stack_info.cpp の実装に誤りがあったので修正。 (2006.02.19) BSD 系OS でのスタック領域情報の取得の仕方を追加 初めに C/C++ でプログラムをしているとつい忘れてしまうのがスレッドのスタックオーバーフローの問題。 最近の OS はスレッド当たり 2〜8MB のスタック領域を持っているため、よほどのことがない限りスタックが溢れてしまうことはない。 だが、再帰や alloca を積極的に使

  • 1