タグ

polyglotとcに関するTAKESAKOのブックマーク (5)

  • プログラミング言語 C の新機能

    7. 文法一般 この章では C 言語に新たに加えられた指示付きの初期化子や複合リテラルといった文法や、暗黙時の宣言に関する変更といった、変更された文法について説明します。 7.1 暗黙の関数宣言 現在の C 言語の規格では、ある関数から他の関数を呼び出す時、とくにその関数のプロトタイプを宣言しなくても使用することができました。例えば stdio.h を読み込まずに、printf を使用するといったことです。しかし、今度の C 言語ではそのような場合、その関数の呼び出しは規格上未定義の動作となります。ただ実際には多くの処理系では警告を出してコンパイルするよう実装されることでしょう。この辺の機能は C++ に近くなっていますね。 7.2 宣言時の暗黙の型 手続き型言語では、一般的に変数や関数などを宣言して使用する必要があります。もちろん C 言語も例外ではありません。しかし C 言語では特に型

  • 日下部(void)さんと遊ぼう(13) - やねうらおブログ(移転しました)

    しかしこの話には後日談がある。菊やんさんが、面白い話題を振ってくれたのだ。 for (exp1;exp2;exp3) st と exp1; while (exp2) {st exp3;} が等価にならないのはcontinueがあるときとexp3で新しい名前が導入される場合かな exp3でAという名前が定義されると st の挙動が変わるからね。 他には exp3 にラベルをつけられるってのが利点? exp3で名前が導入できるというのは、驚くべきことに int A = 1; { for (;A--; exp3) { printf("%d\n", A); } } において、ループは一回しか実行されないのに、100とか出力できるような式exp3が書けるということです。 C89でも書けます。でも、えらい長いのでショートコードには使えません。 簡略化すると、菊やんさんが言っているのは次のことである。

    日下部(void)さんと遊ぼう(13) - やねうらおブログ(移転しました)
    TAKESAKO
    TAKESAKO 2009/06/09
    「この問題はC++では書けない。なぜならC++では「式の中で新しい型を定義してはいけない」と決まってるからである。」
  • Christmas poem since 1988

  • gcc 勉強会したい - takkan_mのNo planな日常

    今日、ちょっとソースを読む時間があったのですが、ひさしぶりに知らないgccの拡張記法にであいました。 int hoge [] = { [0..10] = 3 }; どうやら、これで配列のindexが0から10までを3にした配列になるようです。いやぁ、gccが独自に拡張記法をもっているって知らずに、いきなりであったらぎょっとしますね(僕は知ってて読んでぎょっとしましたが)。 それから、フリーソフトウェア徹底活用講座をてきとうに眺めていたんですが、gccは変数名に"$"を許してくれるみたいですね。なので、こんなコードも見事にコンパイルしてくれます。 $ cat add.c #include <stdio.h> #define my int my main() { my $a = 4; my $b = 3; my $c = $a + $b; printf("%d + %d = %d\n",$a,

    gcc 勉強会したい - takkan_mのNo planな日常
    TAKESAKO
    TAKESAKO 2008/02/27
    おおお → gccは変数名に”$”を許してくれるみたい
  • Esoteric source code

    Writing obfuscated code is fun. Golfed binaries I created other page . Polyglots Polyglot quine Polyglot Quine in C and Ruby and Python and Perl and Brainfuck . In other words, this program is runnable with 5 language implementations and it produces its source code without file I/O. Source code . You can use this source code like following: > gcc -xc <(./BFI <(python <(ruby <(perl poly_quine5.txt)

    TAKESAKO
    TAKESAKO 2007/09/14
    変態プログラミングの極地(いい意味で)
  • 1