###
5 続・関数を呼び出す

printfは`sys.stdout`ではなく、本物の標準出力チャンネルへ プリントすることに注意してください。したがって、これらの例は コンソールプロンプトでのみ動作し、IDLEやPythonWinでは動作しません:

    >>> printf = libc.printf
    >>> printf("Hello, %s\n", "World!")
    Hello, World!
    14
    >>> printf("Hello, %S", u"World!")
    Hello, World!
    13
    >>> printf("%d bottles of beer\n", 42)
    42 bottles of beer
    19
    >>> printf("%f bottles of beer\n", 42.5)
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    ArgumentError: argument 2: exceptions.TypeError: Don't know how to convert parameter 2
    >>>

前に述べたように、必要なCのデータ型へ変換できるようにするためには、 整数、文字列およびユニコード文字列を除くすべてのPython型を 対応する`ctypes`型でラップしなければなりません:

    >>> printf("An int %d, a double %f\n", 1234, c_double(3.14))
    Integer 1234, double 3.1400001049
    31
    >>>