Распространенные предупреждения и ошибки в коде отладки keil5

1. Предупреждение: # 1295-D: Устаревшее объявление run_c – укажите типы аргументов.

void run_c();//原函数
void run_c(void);//改正后

Сравнивая объявленную ранее функцию, я обнаружил, что в скобках отсутствует void, потому что моя функция не принимает параметры, и если не добавить void, будет предупреждение.После добавления void в скобки предупреждение пропадает после перекомпиляции.

2. Предупреждение: № 940-D: отсутствует оператор возврата в конце непустой функции «Gray_Delay_Run40».

int Gray_Delay_Run40(u16 i)//原函数
{
	while(i -- )
	{
		delay_ms(1);
		Gray_Run40();
	}
}

int Gray_Delay_Run40(u16 i)//改正1
{
	while(i -- )
	{
		delay_ms(1);
		Gray_Run40();
	}
    return 0;
}

void Gray_Delay_Run40(u16 i)//改正2
{
	while(i -- )
	{
		delay_ms(1);
		Gray_Run40();
	}
}

Поскольку моя функция имеет тип int, она должна иметь возвращаемое значение, но у меня нет возврата, поэтому я добавляю return 0; после перекомпиляции предупреждение исчезает. Или напрямую измените int на void, и предупреждение исчезнет после компиляции.

3.Предупреждение: #177-D: переменная «a» была объявлена, но на нее никогда не ссылались.

s32 a =	50;//原函数
//s32 a = 50;//改正后

Потому что я определил переменную, которая будет использоваться позже, но позже заменил ее непосредственно на число, которое не использовалось.После комментирования этой переменной предупреждение о перекомпиляции исчезло.

4. предупреждение: #177-D: функция «Задержки» была объявлена, но на нее никогда не ссылались. 

static void Delayms(u16 i)
{
    ...
}

//static void Delayms(u16 i)    //改正后
//{
//    ...
//}

Это похоже на третью ошибку, потому что я определил функцию, которая будет использоваться позже, но она не использовалась позже.После комментирования этой функции предупреждение о перекомпиляции исчезло.

5. предупреждение: #128-D: цикл недоступен.
Это предупреждение означает, что я не могу выйти из этого цикла. Я перешел к этой строке и обнаружил, что разрыв действительно отсутствует . После его добавления перекомпилируйте, и предупреждение исчезнет. !

6.ошибка: В конце исходного кода: #67: ожидается "}"
Эта ошибка очень очевидна, то есть скобка отсутствует, потому что она отлаживается по частям. После отладки части комментариев оптимизация наконец-то завершится. восстановлено,так об этом и сообщается.Насчет ошибки,не знаю где она.Из-за небольшой ошибки,перескакивает сразу на последнюю строку.Однако в этом цикле тысячи кодов,и это нереально медленно проходить их один за другим. Решение - бинарный поиск . Сначала прокомментируйте верхнюю половину кода. Если ошибки нет, то, должно быть, в верхней половине отсутствует "}". Продолжите бинарный поиск. Вы узнаете, где ошибка, посмотрев в последних нескольких десятках строк. Добавьте круглые скобки, ошибка перекомпиляции устранена!
  

Supongo que te gusta

Origin blog.csdn.net/weixin_43200943/article/details/123377318
Recomendado
Clasificación