int multiply_by_2(float scalar) {
printf("result: %f\n", scalar*2);
}
у вас есть int
функция возврата, которая не return
никакое целое число.Это вызывает неопределенное поведение (после вызова этой функции multiply_by_2
в другом месте).Будь напуган , могут произойти очень плохие вещи (даже вне этой функции multiply_by_2
или вне ее вызывающей стороны).
В следующий раз скомпилируйте все предупреждения иотладочная информация, поэтому с gcc -Wall -Wextra -g
при использовании GCC .Улучшайте свой код, чтобы не получать предупреждений.
Читайте также Как отлаживать небольшие программы .
Если вы используете с плавающей запятой числа, будьте очень осторожны.Их трудно понять и они ведут себя нелогично (например, сложение не является ассоциативным).Сначала прочитайте http://floating -point-gui.de / .
Если у вас есть несколько единиц перевода (например, исходные файлы, такие как a.c
и main.c
) на практике у вас должен быть хотя бы какой-нибудь общий заголовочный файл и #include
в каждом *.c
файле.В первом приближении ваш заголовочный файл должен объявлять все ваши [глобальные] типы и функции.И вам необходимо настроить инструмент автоматизации сборки (например, написать свой Makefile
), чтобы учесть такие зависимости : ваш заголовочный файл должен как-то бытьупоминается.
Узнайте больше о программировании на Си.Смотрите также некоторые C ссылка сайт.Прочитайте документацию по каждой функции, которую вы используете (например, printf )
Вы многому научитесь, изучив исходный код существующих маленьких бесплатныхпрограммное обеспечение программ (например, на github , gitlab , в дистрибутиве Linux и т. д.).