14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 81
1

_timeout _cell и много _ _ _ подчерк перед именем

08.08.2017, 10:26. Показов 2038. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени!

для примера Stream.h (AVR) или любой другой файл Си
C
1
2
3
4
5
class Stream : public Print
{
  protected:
    unsigned long [B]_timeout[/B];      // number of milliseconds to wait for the next char before aborting timed read
    unsigned long [B]_startMillis[/B];  // used for timeout measurement
что означают подчерк перед наименованием переменной? очень часто встречаю в разных файлах.
или вот еще пример с другого файла
C
1
2
3
4
5
6
7
8
#ifndef ARDUINO_STREAMING
#define ARDUINO_STREAMING
 
#include <Arduino.h>
#include "LOG.h"
 
#define [B]__ST_LOG_LEVEL 3[/B]
static LOG _st_logme([B]__ST_LOG_LEVEL[/B]);
почему не написать
C
1
#define ST_LOG_LEVEL 3
или вот пример
C
1
2
3
4
5
6
7
8
9
for (int i=1;i<8;i++){
            switch (i) {
            case 1:
             [B] _cell.begin[/B](2400);
              break;
              
            case 2:
              [B]_cell.begin[/B](4800);
              break;
ищу поиском по файлам в проекте- нахожу в файле где описан класс GSM.
C
1
2
3
4
5
protected:
    SoftwareSerial [B]_cell[/B];
    int isIP(const char* cadena);
 
  public:

иногда совпадает с именем файла в проекте SoftwareSerial.h
при том бывает два подчерка а бывает один. Прошу разьяснить ,либо что прочитать. Спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2017, 10:26
Ответы с готовыми решениями:

Амперсанд перед именем функции
Недавно столкнулся с таким представлением функции: double &amp;re(void) Так и не понял, зачем...

Название перед доменным именем
Подскажите как настроить apache, чтобы адреса сайтов были не в виде имя.домена.ру/название_проекта,...

Знак Указателя перед именем функции
Не могу понять с какой целью перед именами функций стоит знак указателя в книге? Скрин: {ссылка...

Звёздочка перед именем свойства CSS
Всем привет, в bootstrap.css наткнулся на звёздочки перед именами свойств, например: .btn { ...

2
Неэпический
17871 / 10638 / 2054
Регистрация: 27.09.2012
Сообщений: 26,753
Записей в блоге: 1
08.08.2017, 13:17 2
Лучший ответ Сообщение было отмечено sourcerer как решение

Решение

Цитата Сообщение от Андрей Валерьев Посмотреть сообщение
почему не написать
Потому что имена, начинающиеся с подчеркиваний зарезервированы:
Each header declares or defines all identifiers listed in its associated subclause, and optionally declares or defines identifiers listed in its associated future library directions subclause and identifiers which are always reserved either for any use or for use as file scope identifiers.
— All identifiers that begin with an underscore and either an uppercase letter or another underscore are always reserved for any use.
— All identifiers that begin with an underscore are always reserved for use as identifiers with file scope in both the ordinary and tag name spaces.
...
C++
1
#define __ST_LOG_LEVEL 3
__ST_LOG_LEVEL - имя начинается с двух подчеркиваний,
так что такой идентификатор зарезервирован под
любое использование, в данном случае это макрос.
C++
1
static LOG _st_logme(__ST_LOG_LEVEL);
_st_logme - имя начинается одним подчеркиванием и далее следует строчная буква,
также область видимости этого идентификатора ограничена файлом (static),
так что этот идентификатор попадает под второй пункт.

Не используйте в своем коде идентификаторы, которые могут быть зарезервированы.
Особенно под любое использование (как в первом пункте - _Name, __Name, __name).
Эти идентификаторы могут оказаться макросами,
которые с удовольствием поломают Ваш код.
На уровне файла же не следует использовать
и идентификаторы из второго пункта.

Разработчики компиляторов и библиотек пользуются
зарезервированными идентификаторами для того, чтобы минимизировать
возможные совпадения имен с пользовательским кодом.
Цитата Сообщение от Андрей Валерьев Посмотреть сообщение
где описан класс GSM.
Кто-то "полям" класса дает префикс m, а кто-то подчеркивание.
Область видимости ограничена классом, так что такой
идентификатор не является зарезервированным,
и его можно использовать даже в своих классах.
Но важно помнить, что после подчеркивания не должно быть заглавной буквы.
_name - нормально
_Name - могут быть проблемы, т.к. такое имя зарезервировано под любое использование.

Надеюсь, стало понятнее.
2
14 / 14 / 5
Регистрация: 16.01.2016
Сообщений: 81
10.08.2017, 03:47  [ТС] 3
отлично! это многое прояснило, спасибо!
0
10.08.2017, 03:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2017, 03:47
Помогаю со студенческими работами здесь

Модификатор доступа protected перед именем класса
Решил опробовать работу protected на классе. В одном пакете есть класс Main, у которого есть...

Что значит знак ~ перед именем функции?
Что значит знак ~ перед именем функции? И что он значит вообще?

Что за знак подчеркивания перед именем ivar-а?
заметил, что в XCODE 5 программа автоматически пытается постаивть знак &quot;_&quot;: _lbl.text=tittle; ...

Как убрать пробел перед именем файла из переменной?
Написал такой скрипт #!/bin/bash LOG_PATH=&quot;/home/workspace/Bash/&quot; LOG_FILE=&quot;test-sh.log&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru