Warning:Statement with no effect - C (СИ)
Формулировка задачи:
Подскажите пожалуйста, написал функцию которая выводит строку на дисплей. В связи с тем что русская кодировка не совпадает с ascii пришлось под русский писать самостоятельно. В функцию я передаю адрес первого элемента и вывожу до окончания строки. Вот кусок функции, всю не привожу, уж больно длинная, но принцип прост и понятен:
При компиляции выдает warning: statement with no effect. Все шуршит и работает, но глаза мозолит.
void PrintStrFromMB(char* Text) { for(Text; *Text; Text++) { switch(*Text) { case 'А': { SendByte(0b01000001, 1); break; } case 'Б': { SendByte(0b10100000, 1); break; } case 'В': { SendByte(0b01000010, 1); break; } case 'Г': { SendByte(0b10100001, 1); break; } case 'Д': { SendByte(0b11100000, 1); break; ... }
Решение задачи: «Warning:Statement with no effect»
textual
Листинг программы
while(*(Text++))
Объяснение кода листинга программы
В данном коде реализована функция, которая принимает в качестве аргумента строку (предположительно текст) и проверяет, является ли каждый символ в этой строке символом новой строки (или переводом строки). Вот список действий, которые выполняются в этом коде:
*(Text++)
- это операция, которая увеличивает указательText
на единицу и возвращает значение, на которое указываетText
до его увеличения. Это позволяет проверить каждый символ в строке.while(*(Text++))
- это цикл, который продолжает выполняться, пока*(Text++)
не станетNULL
(или не будет равно нулю), что обычно происходит в конце строки.- В каждой итерации цикла значение
*(Text++)
увеличивается на единицу, что позволяет проверить каждый символ в строке. - Если
*(Text++)
не равноNULL
, то это означает, что текущий символ является символом новой строки (или переводом строки). - Цикл продолжает выполняться до тех пор, пока не будет найден символ новой строки (или перевода строки), что указывает на конец строки.
- Если цикл завершается, значит, все символы в строке являются символами новой строки (или перевода строки), что может указывать на проблему в коде.
- В результате выполнения этого кода можно получить информацию о том, содержит ли строка символы новой строки (или перевода строки) и где они находятся.
- Отчет об ошибке
Warning:Statement with no effect
может указывать на то, что этот код не делает ничего полезного и может быть оптимизирован или удален.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д