Способ конвертации имени элемента перечисления в строку |
Здравствуйте, гость ( Вход | Регистрация )
Способ конвертации имени элемента перечисления в строку |
kuler |
16.1.2009, 14:59
Сообщение
#1
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
есть enum EnThreadState {tsNone, tsGetEquipmentStringList}
хотелось бы чтобы в коде можно было получить строку (скажем char*) по элементу, то есть char* str = func(tsNone) и теперь str = "tsNone". Не знаете? |
|
|
AD |
16.1.2009, 15:03
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
есть enum EnThreadState {tsNone, tsGetEquipmentStringList} хотелось бы чтобы в коде можно было получить строку (скажем char*) по элементу, то есть char* str = func(tsNone) и теперь str = "tsNone". Не знаете? На ум приходит два метода: 1) switch case 2) использование контейнера map |
|
|
kuler |
16.1.2009, 15:09
Сообщение
#3
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
AD,
это все понятно но надо без лишнего геморроя |
|
|
Litkevich Yuriy |
16.1.2009, 15:09
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
kuler, а почему тема здесь, ты хочешь средствами стандартной библиотеки С?
И слово команда в заголовке сбивает с толку. |
|
|
kuler |
16.1.2009, 15:20
Сообщение
#5
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
|
|
|
ViGOur |
16.1.2009, 15:24
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Не совсем, это скороей языковые обороты, в моем варианте препроцессорные:
Сообщение отредактировал ViGOur - 16.1.2009, 15:25 |
|
|
kuler |
16.1.2009, 15:31
Сообщение
#7
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
ViGOur,
а в чем смысл? #sz? _tmain? |
|
|
ViGOur |
16.1.2009, 16:01
Сообщение
#8
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Ты компилировал пример?
В нем возвращается имя твоего параметра в строковом представлении... #sz - строковое представление твоего параметра _tmain - сгенерировала студия, переименуешь в main ничего не случится. |
|
|
Litkevich Yuriy |
16.1.2009, 16:15
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
ViGOur, я забыл, а что означает одна решетка в макросах.
Две я помню - это сцепление строк. |
|
|
ViGOur |
16.1.2009, 16:33
Сообщение
#10
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Две я помню - это сцепление строк. Одним словом - конкатенация.Не помню как это называется, но помню, что так нужно делать, если нужно получить не значение переменной, а её имя, когда не знаешь его, а очень нужно. Разумеется это относится к макросам. Думается мне, что место этой теме в технике программирования, как считаешь kuler? Просто компиляторами тут пока даже и не пахнет. Сообщение отредактировал ViGOur - 16.1.2009, 16:27 |
|
|
Текстовая версия | Сейчас: 22.11.2024, 14:07 |