Size: a a a

2020 May 15

A

Alexander in Embedded Group
Faberge
Как по расписанию
Мб там механика или движки выходят из строя?
А контроллер нас еще переживет.
источник

F

Faberge in Embedded Group
Alexander
Мб там механика или движки выходят из строя?
А контроллер нас еще переживет.
Тогда бы слесаря искали
источник

И

Игорь in Embedded Group
Вопрос к linuxоидам как вы открываете pdf файлы через терминал?
источник

D

Dr Zlo in Embedded Group
Mikhail Natalenko
Не знаете, нет ли у GCC хитрого макроса, чтобы он создал текстовое название из enum'а ? Хочу для отладки использовать, чтобы текст ошибки выводить...
источник

D

Dr Zlo in Embedded Group
This macro only works for enumeration types that have no assignments to the constants. To define an enumeration type color use the macro in something like

P99_DECLARE_ENUM(color, red, green, blue);
As additional benefits you obtain:

constants color_min and color_max that in the example here would correspond to red and blue, respectively constant color_amount that in the example here would correspond to 3 a function color_getname that returns a string containing the name of its argument. a function color_parse that returns the color with the longest prefix in a string. To have this work, you have to put a line

P99_DEFINE_ENUM(color);
in one of your object files.
источник

MN

Mikhail Natalenko in Embedded Group
Ого
источник

D

Dr Zlo in Embedded Group
Ну и потом color_getname
источник

PB

Petr B. in Embedded Group
Игорь
Вопрос к linuxоидам как вы открываете pdf файлы через терминал?
Ты хочешь в консоли отрендерить или открыть окно с пдфкой?
источник

L

LexsZero in Embedded Group
Mikhail Natalenko
Не знаете, нет ли у GCC хитрого макроса, чтобы он создал текстовое название из enum'а ? Хочу для отладки использовать, чтобы текст ошибки выводить...
есть стандартный трюк с кросс-макрой:
#define my_enum_items \
  enum_item(FOO) \
  enum_item(BAR) \

#define enum_item(x) x,
enum my_enum {
  my_enum_items
};
#undef enum_item

#define enum_item(x) #x,
const char *my_enum_names[] {
 my_enum_items
};
#undef enum_item
// ...
enum my_enum var = FOO;
printf("%s", my_enum_names[var]);
источник

И

Игорь in Embedded Group
Petr B.
Ты хочешь в консоли отрендерить или открыть окно с пдфкой?
Да, с консоли пока только открывать, мне посоветовали zathura, попробовал открыть, вылетели черные окна
источник

L

LexsZero in Embedded Group
Игорь
Да, с консоли пока только открывать, мне посоветовали zathura, попробовал открыть, вылетели черные окна
да любая смотрелка пдф. мне llpp нравится например.
источник

PB

Petr B. in Embedded Group
Даже имейджмэджик умеет рендерить пдфки
источник

И

Игорь in Embedded Group
Есть ли шаблон как вводить название? В кавычках или нет
источник

PB

Petr B. in Embedded Group
Без кавычек, но экранируя всякие пробелы и т.д.
источник

И

Игорь in Embedded Group
Petr B.
Без кавычек, но экранируя всякие пробелы и т.д.
Без кавычек ввел несколько черных окон, с кавычками одно черное))
источник

MN

Mikhail Natalenko in Embedded Group
LexsZero
есть стандартный трюк с кросс-макрой:
#define my_enum_items \
  enum_item(FOO) \
  enum_item(BAR) \

#define enum_item(x) x,
enum my_enum {
  my_enum_items
};
#undef enum_item

#define enum_item(x) #x,
const char *my_enum_names[] {
 my_enum_items
};
#undef enum_item
// ...
enum my_enum var = FOO;
printf("%s", my_enum_names[var]);
Прикольно, только не будет работать для енамов отрицательных значений и для непоследовательных списоков. Короче, я понял, что изкоробки методов нет.
источник

L

LexsZero in Embedded Group
Mikhail Natalenko
Прикольно, только не будет работать для енамов отрицательных значений и для непоследовательных списоков. Короче, я понял, что изкоробки методов нет.
можешь так же генерить не массив, а функцию со свитчем
источник

L

LexsZero in Embedded Group
и в enum_item добавить второй параметр со значением итема
источник

PB

Petr B. in Embedded Group
Игорь
Без кавычек ввел несколько черных окон, с кавычками одно черное))
Звучит как неэкранированные символы типа пробела и т.д. в пути к файлу
источник

MN

Mikhail Natalenko in Embedded Group
LexsZero
можешь так же генерить не массив, а функцию со свитчем
Ну да, именно это решение я и выбрал в итоге
источник