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