Как скомпилировать спецификатор %z в моем коде с помощью редактора dev-c++

Мне нужно скомпилировать файлы программы c со спецификатором %zu, но функция printf всегда показывает zu, не показывая истинное значение. Я использую dev-C++ 5.11, а мой TDM_GCC версии 4.9.2.

#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
int main(void) {
   const size_t x = 150;
   int a[x];
   for (size_t i = 0;i < x; ++i)
      a[i] = i;
   printf("SIZE_MAX = %lu\n", SIZE_MAX);
   size_t size = sizeof(a);
   printf("size = %zu\n", size);
}

И результат

SIZE_MAX = 4294967295

размер = зу

Могу ли я узнать, как заставить компилятор показывать истинное значение размера. Спасибо вам.


person lawrence    schedule 30.04.2019    source источник
comment
Код, который вы разместили, печатает 600 для размера в dev С++   -  person Arthur Green    schedule 30.04.2019
comment
Возможно, спецификатор %zu не может использоваться в моем компиляторе, хотя я использую -std=c99 или -std=gnu99, но почему он может печатать sizeof, но не может печатать %zu?   -  person lawrence    schedule 30.04.2019
comment
@lawrence В devC++ лучший способ напечатать значение size_t — использовать %lu и привести значение к типу unsigned long.   -  person Arthur Green    schedule 30.04.2019
comment
Хорошо, спасибо за ваш комментарий.   -  person lawrence    schedule 30.04.2019
comment
@lawrence dev-C++ не является компилятором. Вероятно, вы используете компилятор MingW, который, в свою очередь, использует библиотеку MSVCRT C... и это известная проблема.   -  person Antti Haapala    schedule 30.04.2019
comment
Спасибо Вам за ваш комментарий.   -  person lawrence    schedule 30.04.2019