Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Препроцессор нигде считать не умеет. Его дело (согласно стандарту) только тупые текстовые подстановки. А дальше компилятор уже посчитает в процессе компиляции выражения.
Отправлено
SM
17 сентября 2007 г. 16:05
В ответ на:
Кто юзает AVR-GCC, препроцессор считать там умеет ? То есть формула типа ((F_CPU / (16 * COM_BAUDRATE)) - 1) >> 8 прокатит ?
отправлено MegaJohn 17 сентября 2007 г. 16:03
Составить ответ
|
Вернуться на конференцию
Ответы
Ваще говоря "вычисления на уровне препроцессора" - и есть вычисления выполняемые компилятором (то есть до исполнения самой программы), "а на уровне процессора" - вычисления на уровне конкретного CPU, исполняющего программу. (+)
—
Щ.C.
(17.09.2007 18:00:11
144.206.186.102
, 64 байт)
В теории ничего не менялось. Препроцессор никогда ничего не вычислял. В стандарте об этом все аккуратно сказано. А такие вычисления называются вычислениями на этапе компиляции, а не на уровне препроцессора.
—
SM
(17.09.2007 18:25:14
80.92.255.53
,
пустое
)
Т.е. препроцессор с разбором языка #... можно, конечно, выделить в отдельную стадию обработки, но, наверное, не имеет смысла.
—
Щ.C.
(17.09.2007 18:23:53
144.206.186.102
,
пустое
)
Именно так. Препроцессор это отдельная стадия. И в стандарте об этом недвусмысленно сказано. Более того, есть у многих компиляторов ключи, указывающие, что запустить только препроцессор. И он еще бывает оформлен в виде отдельной программы.
—
SM
(17.09.2007 18:27:1
80.92.255.53
,
пустое
)
Согласен, но и у не у всех это есть (может отрубают за ненадобностью?).
—
Щ.C.
(17.09.2007 18:38:28
144.206.186.102
,
пустое
)
А это в основном GNUшникам нужно, у остальных может и не быть вообще.
—
SM
(17.09.2007 18:43:26
80.92.255.53
,
пустое
)
А не сосчитает ли он если там все константы ???
—
miv
(17.09.2007 16:30:5
213.170.82.250
,
пустое
)
Препроцессор считать не умеет, так как не умеет по его определению. А компилятор потом все посчитает и пооптимизирует, и константы, и не константы.
—
SM
(17.09.2007 16:31:37
80.92.255.53
,
пустое
)
Уже ответил ! =))
—
miv
(17.09.2007 16:33:30
213.170.82.250
,
пустое
,
ссылка
)
Хотя ??? Скорее всего нет ! =)))
—
miv
(17.09.2007 16:30:42
213.170.82.250
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 2 вдвое:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru