programmingに関するkamenoseijiのブックマーク (2)

  • Welcome to evalpark!

    #!/bin/sh -v freebsd-version uptime ps aux id env which awk which node which perl which python3 which ruby # fizzbuzz for i in `seq 1 30` do if [ `expr $i % 3` -eq 0 ] && [ `expr $i % 5` -eq 0 ]; then echo "fizzbuzz" elif [ `expr $i % 3` -eq 0 ]; then echo "fizz" elif [ `expr $i % 5` -eq 0 ]; then echo "buzz" else echo $i fi done evalpark is an AJAX service which runs a given shell script. The res

    kamenoseiji
    kamenoseiji 2017/03/18
    /friendsに集まれともだち。
  • C言語で可変長引数をとる関数を、型安全に書く方法

    C言語の可変長引数は、型安全でない(まちがった型の引数を渡してもコンパイルエラーにならない)とされています。これは言語仕様の理解としては正しいのですが、特定の型の引数を任意の個数とる関数に限っては、マクロを使うことで型安全性を確保することができます。 任意の個数のdoubleを引数にとり、その和を返す関数「sumf」を例にあげて説明します。 C言語の可変長引数機構を使ってsumfを定義すると、以下のようになります。 #include <math.h> #include <stdarg.h> #include <stdio.h> static double sumf(double nfirst, ...) { double r = 0, n; va_list args; va_start(args, nfirst); for (n = nfirst; ! isnan(n); n = va_a

    kamenoseiji
    kamenoseiji 2014/12/13
    試したい。
  • 1