Всегда активные предупреждения. С GCC используйте как минимум -Wall -Wextra -Wstrict-prototypes -Wwrite-strings
.
Ввод / вывод сложен. scanf()
это зло. gets()
не следует никогда использовать.
Когда вы печатаете что-то, что не определено '\n'
, вы должны сбросить stdout
, если вы хотите напечатать это немедленно, например
printf("Type something: ");
fflush(stdout);
getchar();
По возможности используйте указатели const
. Например. void foo(const char* p);
.
Используйте size_t
для хранения размеров.
Литеральные струны, как правило, не могут быть изменены, поэтому сделайте их const
. Например. const char* p = "whatever";
.
Если вы посмотрите Синтаксис CREATE PROCEDURE для последней версии MySQL, вы увидите, что параметр процедуры может содержать только спецификатор IN / OUT / INOUT, имя параметра и тип.
Таким образом, значения по умолчанию по-прежнему недоступны в последней версии MySQL.
Нет, это не поддерживается синтаксисом хранимых подпрограмм MySQL.
Не стесняйтесь отправлять запрос функции на bugs.mysql.com .