Непонятное сообщение об ошибке от компилятора - C (СИ)
Формулировка задачи:
Здравствуйте, Друзья!
При исполнении следующего кода на СИ:
компилятор Dev-C++ выдает странную ошибку:
In function `Z1_iii'.
Причем, если я процедуру назову именем из 2х символов(например - Dr), то компилятор выдаст такую ошибку:
In function `Z2Driii'.
А если из 10 символов(например - gfdfsgdsfg), то такую:
In function `Z10gfdfsgdsfgiii'.
Подскажите пожалуйста, зачем это он благим матом разговаривает и как его успокоить?
#include <conio.h> #include <graphics.h> void _ (int x,int y, int color) { setfillstyle (1,color); bar (x,y,x+20,y+20); } main() { int x=0, y=300; initwindow (400,400); setfillstyle (1,9); floodfill (x,y,0); while (x+20<400) { if (kbhit()) { if (getch() == 27) break; } _ (x,y,14); delay ( 20 ); _ (x,y,9); x++; } closegraph(); }
Решение задачи: «Непонятное сообщение об ошибке от компилятора»
textual
Листинг программы
#include <graphics.h> void _(int x, int y, int color) { setfillstyle(1, color); bar(x, y, x + 20, y + 20); } int main() { int x = 0, y = 300; int driver = DETECT; int mode = 0; initgraph(&driver, &mode, ""); setfillstyle(1, 9); floodfill(x, y, 0); while ((x + 20 < 400) && !anykeypressed()) { _(x, y, 14); delay(20); _(x, y, 9); x++; } closegraph(); return 0; }
Объяснение кода листинга программы
- Включаем заголовочный файл
- Определяем функцию с именем _ с тремя параметрами типа int: x, y, color.
- Внутри функции устанавливаем тип заполнения фигуры (в данном случае — 1) и цвет (color).
- Затем вызываем функцию bar(x, y, x + 20, y + 20), которая рисует прямоугольник.
- В функции main() инициализируем переменные x и y со значениями 0 и 300 соответственно.
- Определяем переменные driver и mode, которые используются для инициализации графического драйвера и режима графики.
- Инициализируем графический драйвер и режим графики с помощью функции initgraph(&driver, &mode, ``).
- Устанавливаем тип заполнения фигуры (в данном случае — 1) и цвет (9) с помощью функции setfillstyle(1, 9).
- Используем функцию floodfill(x, y, 0), чтобы заполнить прямоугольник с координатами (x, y) цветом 0.
- Затем в цикле while рисуем два прямоугольника (с координатами (x, y)) с помощью функции (x, y, 14) и (x, y, 9), ждем 20 миллисекунд и переходим к следующему циклу.
- Увеличиваем значение x на 1.
- Если нажата клавиша (anykeypressed()), то цикл прерывается.
- Закрываем графику с помощью функции closegraph().
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
- Значение переменной x изменяется от 0 до 399, поскольку в цикле while выполняется 200 итераций.
- Значение переменной y остается постоянным (300).
- Цвет фигур меняется с 9 на 14, а затем обратно на 9.
- Не указано, что произойдет, если значение переменной x достигнет 400.
- Не указано, что произойдет, если пользователь нажмет клавишу.
- Не указано, как программа завершится, если возникнет ошибка во время выполнения.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д