Я давно не писал C и пишу приложение с использованием MySQL C API, компилируя в g ++ на redhat.
Итак, я начинаю выводить некоторые поля с помощью printfs ... используя API оракула, с PRO * C, который я использовал (например, suse, много лет назад), я мог выбрать int и вывести его как:
int some_int;
printf("%i",some_int);
Я пытался сделать это с помощью mysql, и у меня отображалось 8 случайных чисел ... Я думал, что это проблема MySQL API, и некоторые проблемы конфигурации с моим сервером, и я потратил несколько часов, пытаясь это исправить, но не смог и обнаружил, что я могу сделать:
int some_int;
printf("%s",some_int);
, и это будет правильно выводить целое число. Поскольку я не делаю вычисления для извлекаемых значений, я подумал, что это правильное решение.
Пока я не попытался подсчитать некоторые вещи ...
Я сделал простое:
int rowcount;
for([stmt]){
rowcount++;
}
printf("%i",rowcount);
Я снова получаю 8-значное случайное число ... Я не могу понять, как обстоят дела с целыми на этой машине.
тогда я понял, что если я инициализирую int нулем, то получаю правильное число.
Может кто-нибудь объяснить, при каких условиях вам нужно инициализировать переменные int равными нулю? я не помню, чтобы это делалось каждый раз в моей старой кодовой базе, и я не видел этого в примере, в котором я моделировал свой код mysql_stmt из ...
есть что-то, чего мне не хватает? также вполне возможно, что я забыл, что это требуется каждый раз
спасибо ...