реклама на сайте
подробности

 
 
> Нужна подсказка по С., Как оно работает?
smk
сообщение Jan 19 2012, 12:23
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Ниже приведен кусок кода. Код работает. Как я понимаю условие перестанет выполняться, если очередной байт будет равен нулю. Так? Ну из этого проистекает другой вопрос, а с чего это байт, следующий за последним байтом в массиве, будет 0? Как это работает, чего я не понимаю?

Код
unsigned char HELLO[]="Hello, I'm STM8S105C6, but who are you?";
unsigned char *byteNum = HELLO; // Указатель на передаваемый байт.

void UART2_TXE(void) interrupt 20
    {
        if (*byteNum)
            {
                UART2_DR=*byteNum; // Отправить байт.
                byteNum++;
            }
        else UART2_CR2 &= ~(1<<7); // Запретить прерывания по TXE, всё передано.
    }


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
xemul
сообщение Jan 19 2012, 12:38
Сообщение #2



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(smk @ Jan 19 2012, 16:23) *
а с чего это байт, следующий за последним байтом в массиве, будет 0?

В "" в C задаются строковые константы. Любой букварь по С скажет, что строка — это одномерный массив символов, заканчивающийся нулевым символом.
'\0' в конце строковой константы добавляет компилятор, размер массива должен этот '\0' учитывать.
Go to the top of the page
 
+Quote Post
smk
сообщение Jan 19 2012, 12:41
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(xemul @ Jan 19 2012, 14:38) *
В "" в C задаются строковые константы. Любой букварь по С скажет, что строка — это одномерный массив символов, заканчивающийся нулевым символом.
'\0' в конце строки добавляет компилятор, размер массива должен этот '\0' учитывать.

Спасибо. Теперь ясно. А то я по другим букварям учился да и не доходило дело до таких тонкостей, а тут увидел и задумался.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 14:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016