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может указывать на то, что этот код не делает ничего полезного и может быть оптимизирован или удален.