Перейти к содержанию
    

Плавный переход C -> C++ под МК

2 часа назад, EdgeAligned сказал:

Кстати, правила форматирования текста - они настраиваются в IDE. Можно же сделать, чтобы блок namespace не сдвигал табуляцию.

Выглядеть это будет убого и это мягко сказано))
 

9 часов назад, Forger сказал:

значит пришло время слазить с "устаревших" 14 и тем более 11 :dirol:

image.png.378f036af54b8097d632abaf856b7cc4.png

Какой еще такой коммьюнити - "не нужон нам этот ваш коммьюнити" (с)😆

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 minutes ago, Arlleex said:

Какой еще такой коммьюнити - "не нужон нам этот ваш коммьюнити"

это в среде показывает комьюинити, а сам компилятор v6 уже давно полноценно держит 17

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

45 минут назад, Arlleex сказал:

Выглядеть это будет убого и это мягко сказано)

На вкус все фломастеры разные 🤪 внешний вид, особенно по положению скобок и табуляций - дело личных привычек

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слышал я, что в C++ слово typedef уже несколько устарело.

Раньше в Си я мог одной и той же структуре назначать псевдонимы в синтаксически "цельном" формате

typedef struct {
  u32 cmd,
      crc;
} sTxMsgRequest,
  sTxMsgCommand;

что было полезно для читаемости кода в контекстно-зависимых местах. Ну, типа, воспользовались Request-структурой, значит на нее будем ждать "ответ" по протоколу обмена. Если Command, то ответа ждать не придется.

В C++ структуры определяются уже по-другому, т.е. не нужно писать тэги: но тогда нет возможности в пределах синтаксической единицы - определения - назначить сразу несколько имен этой структуре, приходится отдельно

struct sTxMsgRequest { // <- только одно имя
  u32 cmd,
      crc;
};

typedef /* или using = ... как-то там */ sTxMsgRequest sTxMsgCommand;

а отдельно - не красиво, глаз цепляется за это самое "отдельно".

Тогда по старинке, как в Си - typedef not must die?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 minutes ago, Arlleex said:

Слышал я, что в C++ слово typedef уже несколько устарело.

да, есть такое ))

к слову я давно перешел на using, его проще читать, логично выглядит что ли ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Forger сказал:

да, есть такое ))

к слову я давно перешел на using, его проще читать, логично выглядит что ли ))

Ну как сказать... Вот такое, например, не компилится (по крайней мере щас под рукой C++ Builder)

using struct {
  u32 cmd,
      crc;
} sTxMsgCommand;

так что typedef пока что нельзя просто так выкинуть из языка:wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, Arlleex said:
using struct {
  u32 cmd,
      crc;
} sTxMsgCommand;

неправильно записано, using используется иначе, у меня компилируется:

using sTxMsgCommand = struct {
  uint32_t cmd,
      crc;
};

sTxMsgCommand command;


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, Arlleex сказал:

Вот такое, например, не компилится

using тут не нужен. Он немного для другого:

struct {
  u32 cmd,
      crc;
} sTxMsgCommand;
using sTxMsgRequest sTxMsgCommand;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, Forger сказал:

неправильно записано, using используется иначе, у меня компилируется:

using sTxMsgCommand = struct {
  uint32_t cmd,
      crc;
};

sTxMsgCommand command;

Ну вот, а у меня нет((
 

7 минут назад, Сергей Борщ сказал:

using тут не нужен. Он немного для другого:

struct {
  u32 cmd,
      crc;
} sTxMsgCommand;
using sTxMsgRequest sTxMsgCommand;

Ну как же, sTxMsgCommand теперь не тип, а объект безымянной структуры🙂

Ну и в любом случае, using уже в отдельной строке "в отрыве" от определения структуры.

Я хочу лишь услышать, typedef тут и есть серебряная пуля или нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 21.02.2024 в 12:43, Arlleex сказал:

Ну вот, а у меня нет((

Насколько я представляю, борланд никогда не придерживался strict ANSI, не говоря о том, в каком году закопали последний с++билдер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, Arlleex сказал:

Ну как же, sTxMsgCommand теперь не тип, а объект безымянной структуры

Это я писал из головы и не успел исправить (отвлекли).

struct sTxMsgCommand {
  u32 cmd,
      crc;
};
using sTxMsgRequest = sTxMsgCommand;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

using sTxMsgRequest = sTxMsgCommand;

А позвольте узнать, а в чем тут выигрыш? Длина имени одна и та же, аргументов не скрыто. Немного поменяли имя - ну дак это так себе, вкусовщина. Лишние переопределения больше запутывают, чем проясняют.
Как по мне, так using использовать, когда ... ну самый банальный пример: using PB0 = Pin<GpioA, 5>; PA5::High();

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

стараюсь структурам не делать двойников по содержанию, но с разными именами, иначе это путает,

впрочем, это скорее вкусовщина

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...