apache2: userdir в userdir.domain.fr с использованием VirtualDocumentRoot

С C99 модификатор длины %j также может использоваться с семейством функций printf для типов int64_t и uint64_t:

#include <stdio.h>
#include <stdint.h>

int main(int argc, char *argv[])
{
    int64_t  a = 1LL << 63;
    uint64_t b = 1ULL << 63;

    printf("a=%jd (0x%jx)\n", a, a);
    printf("b=%ju (0x%jx)\n", b, b);

    return 0;
}

. Компиляция этого кода с помощью gcc -Wall -pedantic -std=c99 не выдает предупреждений, а программа печатает ожидаемый результат:

a=-9223372036854775808 (0x8000000000000000)
b=9223372036854775808 (0x8000000000000000)

Это соответствует printf(3) в моей системе Linux (на странице руководства указано, что j используется для указания преобразования к intmax_t или uintmax_t, в моем stdint.h оба int64_t и intmax_t точно подобраны, и аналогично для uint64_t). Я не уверен, что это совершенно портативно для других систем.

0
задан psic 17 February 2015 в 10:59
поделиться