Size: a a a

2020 April 22

jp

jon pedro in Deus Volt!
r44083
Если хотите точно заинлайнить - тогда лучше constexpr функция
constexpr только в плюсах, а инлайн и в си есть
источник

jp

jon pedro in Deus Volt!
Плюс к этому constexpr только с 11 версии плюсов, если я ничего не путаю, отсюда проблема с тем, что всякие код комппозеры для c2000 серии мк не будут воспринимать эту конструкцию т.к там. C++3, думаю есть ещё какие-то извращенные камни с этой ерундой
источник

r

r44083 in Deus Volt!
Да, у меня C++ 14
источник

r

r44083 in Deus Volt!
я всякие код композеры не использую. Есть же gcc и хороший STL с новыми C++
источник

T

Thorn in Deus Volt!
для c2000 нет gcc
источник

r

r44083 in Deus Volt!
Зачем тогда использовать c2000? И что это такое?
источник

r

r44083 in Deus Volt!
Вообщем, как посоветовал @pthorn, сделал почти следующим образом:
источник

r

r44083 in Deus Volt!
источник

jp

jon pedro in Deus Volt!
r44083
Зачем тогда использовать c2000? И что это такое?
Типо dsp процы, хотя вот я уже задумываюсь о целесообразности их использования. Тут как-то обсуждали сравнение dsp возможностей st и ti процов. Пришли к тому, что вроде как разница не особо та и видна
источник

VH

Volodymyr Holodiuk in Deus Volt!
jon pedro
Типо dsp процы, хотя вот я уже задумываюсь о целесообразности их использования. Тут как-то обсуждали сравнение dsp возможностей st и ti процов. Пришли к тому, что вроде как разница не особо та и видна
Разве что С2000 по умолчанию соответствуют большинству стандартам функциональной безопасности типа ISO 26262/IEC 61508, ISO-9001/IATF-16949, IEC 60730-1 и так далее
источник

jp

jon pedro in Deus Volt!
Volodymyr Holodiuk
Разве что С2000 по умолчанию соответствуют большинству стандартам функциональной безопасности типа ISO 26262/IEC 61508, ISO-9001/IATF-16949, IEC 60730-1 и так далее
Ааа, а у st такие есть?
источник

VH

Volodymyr Holodiuk in Deus Volt!
jon pedro
Ааа, а у st такие есть?
Есть, но не все серии не по всех стандартах
источник

VK

Valentin Kornienko in Deus Volt!
r44083
Если хотите точно заинлайнить - тогда лучше constexpr функция
Constexpr != inline не в коем случае.
источник

VK

Valentin Kornienko in Deus Volt!
Thorn
typedef struct {
   enum packet_type type;
   uint8_t data[32];
} packet_t;

static inline uint8_t get_size_for_type(enum packet_type type) {
   switch (type) {
   case TYPE1:
       return 24;
   case TYPE2:
       return 31;
   }
}

while (true) {
   packet_t packet;
   blocking_read(&packet);

   switch(packet.type) {
       // ...
   }
}
https://gist.github.com/shafik/848ae25ee209f698763cffee272a58f8
Допишу сюда на всякий случай, чтобы автор вопроса ознакомился. Надо быть осторожным.
источник

r

r44083 in Deus Volt!
Да, я как бы понимаю, но точно сказать что делает inline в C++ не могу. Все говорят по разному, но гарантии что функция будет встроена - нет.
источник

И

Илья in Deus Volt!
r44083
Зачем тогда использовать c2000? И что это такое?
У С2000 есть куча минусов сейчас на фоне конкурентов, но у них есть самое главное - куча либ и софта проверенного из которых условный мегаваттный инвертор за неделю собирается прототип
источник

И

Илья in Deus Volt!
jon pedro
Ааа, а у st такие есть?
Есть инфинеон же, там есть вообще все
источник

VK

Valentin Kornienko in Deus Volt!
r44083
Да, я как бы понимаю, но точно сказать что делает inline в C++ не могу. Все говорят по разному, но гарантии что функция будет встроена - нет.
1) Метод определенный внутри класса имеет спецификатор inline
2) inline влияет на линковку функции - https://stepik.org/lesson/560/step/13?unit=883 смотреть подробнее тут. Если быть точным- при inline в случае нарушения One Definition Rule для функции будет отброшены все ее реализации кроме одной.
3) На оптимизации компилятора, а именно встраивание- оно влияет косвенно. Если весь код обписать inline-спецификатором- компилятор на свое усмотрение будет оптимизировать.
источник

VH

Volodymyr Holodiuk in Deus Volt!
Илья
У С2000 есть куча минусов сейчас на фоне конкурентов, но у них есть самое главное - куча либ и софта проверенного из которых условный мегаваттный инвертор за неделю собирается прототип
Ну да, за неделю ))
источник

T

Thorn in Deus Volt!
r44083
можете не комментировать, но по вашим примерам кода никак не скажешь, что у вас проект на с++14 😀
источник