Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2013, 19:24   #21
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

_Bers, как я понял:
Код:
#define N (int(10))
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.03.2013, 19:33   #22
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
_Bers, как я понял:
Код:
#define N (int(10))
Ааа... дошло!

Ну и какой профит от подобного не совсем читабельного способа задания констант?

а ещё, тогда наверное лучше делать:

#define TEN (const int(10))

константу компилятору всегда проще соптимизировать, чем не константу.
_Bers вне форума Ответить с цитированием
Старый 04.03.2013, 00:04   #23
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Вы жаловались на типизацию в дефайнах, я дал привел пример.
A операции с енумами дают int, т.е. опять типизация теряется, т.е. то же самое.
waleri вне форума Ответить с цитированием
Старый 04.03.2013, 00:22   #24
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Вы жаловались на типизацию в дефайнах, я дал привел пример.
A операции с енумами дают int, т.е. опять типизация теряется, т.е. то же самое.
Ага, как запускать в рантайме конструкторы и уповать на оптимизацию. Я уже не говорю про то, что далеко не каждая константа времени компиляции может иметь разрешенные копирующий конструктор.

И совсем молчу про то, что такая уродливая запись не имеет никаких преимуществ перед самыми банальным объявлением констант.

А что касается типизации енумов, то внезапно:
http://liveworkspace.org/code/2jfSma$0

Вы можете скормить инт вместо енума, но только если явно укажете компилятору, что действительно хотите такого приведения:

Код:
#include <iostream>

using namespace std;

enum eSETUP { eINIT = 100 };

void Foo(const eSETUP value)
{
   cout<< "this is eSETUP type, and this value = "<< value<<std::endl;
}

int main()
{
   const int val = 1000;
   Foo( (eSETUP) val); // <---- указивка компилятору "я знаю, что делаю"
}
В противном случае сработает защита типа времени компиляции:
http://liveworkspace.org/code/2jfSma$1

Так что не надо тут ля-ля
_Bers вне форума Ответить с цитированием
Старый 04.03.2013, 09:46   #25
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

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

Опять объясняю, я никого не заставляю так делать. Вы сказали, что в дефайнах нет типизации, я вам дал пример как ее добиться. Если для вас лучший способ это через enum - ради бога, я разве против?

Насчет "не каждая константа времени компиляции может иметь разрешенные копирующий конструктор" я вообще не понял к чему это.
waleri вне форума Ответить с цитированием
Старый 04.03.2013, 10:00   #26
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

На счет типизации в дефайнах, gcc воспринимает все целочисленные константы в коде как int, если явно не указано иное. Лично мне этого хватает.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какие элементы кода могут тормозить загрузку моего сайта? Pyatachok HTML и CSS 3 08.11.2012 23:05
Хочу понять в чем ошибка моего кода FreeCat Общие вопросы C/C++ 11 09.06.2012 03:13
CreateRemoteThread и выполнение моего кода в чужом процессе Человек_Борща Win Api 4 11.05.2012 11:16
Прошу помощи в проверке моего перевода небольшого фрагмента кода от Си к делфи! SkAndrew Общие вопросы Delphi 11 16.08.2009 16:37
Ч чём ошибка моего кода сохранения и загрузки? AngelOfDeath Общие вопросы Delphi 3 08.04.2008 13:55