Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Про С, это уже стандартом стло или нет?
Отправлено
Artem-1.6E-19
26 августа 2007 г. 13:18
int16_t adcIBatt = ADC_I_BATT_OFFSET-(int16_t)adcChannels.name.adcIBatt;
if(adcIBatt < 0 )adcIBatt = 0;
int16_t deltaVoltage = chargingISet - adcChannels.name.adcIBatt;
раньше так нельзя было делать.
Составить ответ
|
Вернуться на конференцию
Ответы
А вообще о чем спор? Это ж обычная структура а не класс...
—
Flasher
(26.08.2007 14:22:37
77.235.115.168
,
пустое
)
плюсы это
—
LOT#
(26.08.2007 13:30:23
212.58.192.14
,
пустое
)
Ответ: Дык, нет. (GCC).
—
Artem-1.6E-19
(26.08.2007 13:38:1
91.124.241.44
,
пустое
)
gCC прекрасно понимает плюсЫ. Не знаю, как там переключаться, но режим ++ у тебя включен. declaration after executable statment в С не позволены
—
LOT#
(26.08.2007 13:40:7
212.58.192.14
,
пустое
)
В
_современном_
С (уже много лет как) позволены. Другое дело, что много компиляторов с 99 года не удосужились поддерждать этот стандарт.
—
ReAl
(26.08.2007 16:39:24
89.162.152.53
,
пустое
)
Ответ: Когда они включены.
—
Artem-1.6E-19
(26.08.2007 13:47:39
91.124.241.44
, 198 байт)
попробуй где нибудь в сурцах это скормить и скажи, что получишь
—
LOT#
(26.08.2007 13:51:45
212.58.192.14
, 101 байт)
Ответ: #ifndef __cplusplus #error NO_CPLUSPLUS
—
Artem-1.6E-19
(26.08.2007 13:59:49
91.124.241.44
,
пустое
)
это build output так выглядит? Должен писать просто error NO_CPPLUS; Тогда не знаю, раз пишет - значит не включен ++
—
LOT#
(26.08.2007 14:05:18
212.58.192.14
,
пустое
)
Ответ: Да. Это не ++.
—
Artem-1.6E-19
(26.08.2007 14:08:22
91.124.241.44
,
пустое
)
да, похоже это фича С99 стандарта, реализованного в GCC. "mixed declarations and code - DONE"
—
LOT#
(26.08.2007 14:21:57
212.58.192.14
,
пустое
,
ссылка
)
Да, это именно С99. Как и inline-функции в C, а не в C++, как и for( int i = 0; локальные массивы переменной (вычисляемой) длины (+)
—
ReAl
(26.08.2007 16:36:35
89.162.152.53
, 130 байт)
всё верно, сам сегодня с удивлением это обнаружил. А насчёт поддержки - так почти все компиляторы стали плюсовыми, поэтому declaration и не попадалось. А с VLA осторжнее бы в embedded - это же malloc скрытый
—
LOT#
(26.08.2007 16:44:34
212.58.192.14
,
пустое
)
Ответ: Судя про примеру выше, стек все еще.
—
Artem-1.6E-19
(26.08.2007 17:03:16
91.124.241.44
,
пустое
)
ты прав, торможу. Жаль, что в ++ такого нет. А также забавно, что NET2005 в режиме "С" этот С99 не поддерживает. Похоже, С99 идет в разрез с генеральной политикой партии и будет предан анафеме, бо денег у MS предостаточно
—
LOT#
(26.08.2007 17:08:40
212.58.192.14
,
пустое
)
Ответ: В С++ можно класс написать и [] перегрузить.
—
Artem-1.6E-19
(26.08.2007 17:13:46
91.124.241.44
,
пустое
)
1) перегрузив его ты будешь
ВЫНУЖДЕН
использовать
new
, так как контроля над использованием компилятором стека у тебя нет. 2) теряется вся ясность 3) в принципе такие массивы обычно не нужны, что покрывает недостаток от их отказа 4) программисты на С++ сейчас сдают позиции, C# требуется, насколько мне известно, с памятью там всё сильно иначе
—
LOT#
(26.08.2007 17:21:47
212.58.192.14
,
пустое
)
Ответ: 1, 2, 4 - согласен. На счет три,
—
Artem-1.6E-19
(26.08.2007 17:39:37
91.124.241.44
, 148 байт)
не согласен - в этом случае malloc/new совершенно не противопоказан, поскольку память ты освободишь в той же ф-ции. Если ты возразишь, что можешь не успеть разобрать пакет до освобождения и возникнут проблемы выделения памяти - точно такие же проблемы будут и в случае VLA.
—
LOT#
(26.08.2007 17:49:50
212.58.192.14
,
пустое
)
Ответ: А сколько времени займет malloc? И кто даст гарантию что он реентерабелен?
—
Artem-1.6E-19
(26.08.2007 17:55:33
91.124.241.44
,
пустое
)
займет столько же времени, сколько и VLA при грамотной реализации. Тём, не придирайся, тебе эти наносекунды в реале не важны. Я думаю VLA не поддержан в С++ по другим мотивам - в частности по причине усложнения контроля и обработки исключений
—
LOT#
(26.08.2007 18:00:8
212.58.192.14
,
пустое
)
Ответ: Я не придираюсь. Время на malloc может быть любым в принципе.
—
Artem-1.6E-19
(26.08.2007 18:07:18
91.124.241.44
, 724 байт)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 63:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru