2009-12-01から1ヶ月間の記事一覧

GCC 4.3の新機能 2進数表記

c gcc

GCC4.3のChangelogを見ていたら、 GCC4.3から 2進数表記が対応したみたい。 大学のプログラミングの授業ではこんな機能が あったらいいな〜って思っていたけど、今になると そこまでうれしくないかな。 #include <stdio.h> int main(void) { printf("%d\n", 0b1111); </stdio.h>…

逆ポーランド計算機 Perl版

Perlで書いたらだいぶ簡単ですね。 やっぱりサブルーチンリファレンスがあると 気持ち楽にかけます。 #!/usr/local/bin/perl package ReversePolish; use Moose; use MooseX::AttributeHelpers; has stack => ( metaclass => 'Collection::Array', is => 'rw…

GCCの4.3の新機能 __COUNTER__マクロ

c gcc

もう一つ気になった機能で __COUNTER__マクロがあります。 これは呼ばれるたびに 0から1ずつインクリメントしていく というものです。 利用方法がよくわからないけど、便利なのかな? マクロって結局実行前に展開されてしまうからね。 そこが難しいところで…

シンプルな逆ポーランド式計算機

c

数字は一桁しか対応してません。 #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define STACK_MAX 1024 typedef int (*OP_TYPE)(int, int); static OP_TYPE get_operator(char c); static int is_operator(char c); static int add(int a, int b); static int sub(int a, </ctype.h></stdlib.h></stdio.h>…

右クリックにしかならない問題

ニコニコ動画を見ているとクリックが右クリックに しかならないときがある。動画をリロードしたら治った けど、commandキーを押しながらクリックしたら左クリック になった。 firefoxの問題なのかなんなのかわからないですけど、 これで解決しました。

A-Eのような表記を ABCDEに展開するプログラム

c k&R

K&Rに出ていた問題を解いてみた. static int expand(char *dest, const char *src) { int i, j, dest_index; int length; char prev, next; length = strlen(src); dest_index = 0; for (i = 0; i < length; i++) { if (src[i] == '-' && (i != 0 && i != le…

リモート環境での screen

Snow Leopard Macの Terminal.appを使ってリモートの Linuxマシンに ログイン後 screenを起動すると表示が乱れるという問題が 生じた. ついでに Emacsを開いても色が全く出ない.調べてもよくわからなかったので, itermを入れてみた。 そしたら解決された。デ…