2008-01-23から1日間の記事一覧

ふーん

signed char s = 0xFF; unsigned char u = 0xFF; printf("%d%d", ~s >= 0, ~u >= 0);

つまり

氷の国にやって来たと。

ずいぶん久しぶりな気がする。

それはそれでカオス…。 #include <stdio.h> int s(int x, int y[printf("x = %d\n", x++)]) { return x; } int main() { printf("s 1 -> %d\n", s(1, 0)); }</stdio.h>

新旧

今の C では $ は使えないけど、そういえば関数定義は古いスタイルも残っていて、仕様がとてもカオスになってる気がする。 float id(float x) { return x; }float id(x) float x; { return x; }どっちが速い?

某氏から教えてもらったところによると、C の古いコンパイラだと識別子に $ が使えたりプリプロセッサが # に対応してなかったり色々するらしい。K&R 仕様だそうだが、手持ちの第 2 版にはそういう内容はないので、第 1 版? そんなコンパイラが今も使われて…