|
Косяк у Кейла, Препроцессор не следит за скобками |
|
|
|
Aug 28 2015, 11:21
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Делаю функцию программной задержки. (Длинная не нужна, естественно, но вопрос уже академический, захотел дойти до предела.) Каждый цикл выполняется за 4 такта, отсюда и деление на 4000. Нюансы не интересны, не в этом дело. Код #define SYSCLK 48000000ULL #define _NS 1 #define _US 1000 #define _MS 1000000 #define _SS 1000000000
#define DELAY(VALUE, UNIT); \ /* DelayFourCycles(VALUE * UNIT * (SYSCLK / 1000000) / 4000); */ \ DelayFourCycles((SYSCLK / 1000000) * VALUE * UNIT / 4000);
DELAY(50, _SS); Так вот, когда сделал, как в закомментированной строке, Кейл ругается на то, что число не влазит в int. И загружает в функцию абы что. Если же сделать, как в строке без комментария, то все вычисляется правильно. Выходит, Кейл видит что последовательность операций равнозначна, что со скобками, что без, и лихо их отбрасывает. Возникает переполнение. Хотя не понятно, отчего возникает, 64 битов должно хватать (на компьютерном калькуляторе хватает). Как будто у Кейла не 64-битовое вычисление, а меньшее.
|
|
|
|
|
 |
Сообщений в этой теме
ViKo Косяк у Кейла Aug 28 2015, 11:21 aaarrr В макросе не хватает скобок для VALUE и UNIT. Aug 28 2015, 11:44 den_po Цитата(ViKo @ Aug 28 2015, 16:21) Как буд... Aug 28 2015, 11:51 ViKo Заменил
#define _NS 1ULL
#define _US 1000ULL
#defi... Aug 28 2015, 12:00 aaarrr Цитата(ViKo @ Aug 28 2015, 15:00) "Н... Aug 28 2015, 12:08  ViKo Цитата(aaarrr @ Aug 28 2015, 15:08) Прост... Aug 28 2015, 12:13 Kabdim Кмк объяснение другое.
VALUE * UNIT * (SYSCLK / 10... Aug 28 2015, 12:01 ViKo Цитата(Kabdim @ Aug 28 2015, 15:01) Кмк о... Aug 28 2015, 12:04 Kabdim Если говорить про стиль макрописания. То как тольк... Aug 28 2015, 12:12 zltigo QUOTE (Kabdim @ Aug 28 2015, 15:12) Если ... Aug 28 2015, 14:46  aaarrr Цитата(zltigo @ Aug 28 2015, 17:46) Да и ... Aug 28 2015, 14:57   zltigo QUOTE (aaarrr @ Aug 28 2015, 17:57) В чем... Aug 28 2015, 15:02    scifi Цитата(zltigo @ Aug 28 2015, 18:02) В бес... Aug 28 2015, 15:13  Petka Цитата(zltigo @ Aug 28 2015, 17:46) ....
... Aug 28 2015, 18:51   zltigo QUOTE (Petka @ Aug 28 2015, 21:51) Так чт... Aug 28 2015, 18:55    Petka Цитата(zltigo @ Aug 28 2015, 21:55) Это п... Aug 28 2015, 19:13 Mihey_K ЦитатаСначала любые операнды типа CHAR или SHORT п... Aug 28 2015, 13:47 Golikov A. ЦитатаСначала любые операнды типа CHAR или SHORT п... Aug 28 2015, 14:26 Kabdim Огласите пожалуйста решение лучше. Думаю многим бы... Aug 28 2015, 15:16 zltigo QUOTE (Kabdim @ Aug 28 2015, 18:16) Оглас... Aug 28 2015, 16:17  aaarrr Цитата(zltigo @ Aug 28 2015, 19:17) Бессм... Aug 28 2015, 17:31   zltigo QUOTE (aaarrr @ Aug 28 2015, 20:31) Тогда... Aug 28 2015, 18:05    aaarrr Цитата(zltigo @ Aug 28 2015, 21:03) Это е... Aug 28 2015, 18:06     zltigo QUOTE (aaarrr @ Aug 28 2015, 21:06) Да ну... Aug 28 2015, 18:12      aaarrr Цитата(zltigo @ Aug 28 2015, 21:12) Да, э... Aug 28 2015, 18:41       zltigo QUOTE (aaarrr @ Aug 28 2015, 21:41) Но по... Aug 28 2015, 18:50        scifi Цитата(zltigo @ Aug 28 2015, 21:50) Ну ин... Aug 28 2015, 18:58         zltigo QUOTE (scifi @ Aug 28 2015, 21:58) Я вас ... Aug 28 2015, 19:22          Petka Цитата(zltigo @ Aug 28 2015, 22:22) Не см... Aug 28 2015, 19:37           zltigo QUOTE (Petka @ Aug 28 2015, 22:37) в конс... Aug 28 2015, 21:43            Petka Цитата(zltigo @ Aug 29 2015, 00:43) Вы, о... Aug 28 2015, 22:09             zltigo QUOTE (Petka @ Aug 29 2015, 01:09) Откуда... Aug 28 2015, 23:39          scifi Цитата(zltigo @ Aug 28 2015, 22:22) Увы, ... Aug 28 2015, 21:14           zltigo QUOTE (scifi @ Aug 29 2015, 00:14) Пардон... Aug 28 2015, 21:32            scifi Цитата(zltigo @ Aug 29 2015, 00:32) От то... Aug 28 2015, 21:40        aaarrr Цитата(zltigo @ Aug 28 2015, 21:50) ...ко... Aug 28 2015, 18:59      GetSmart Цитата(zltigo @ Aug 28 2015, 22:12) Но ко... Aug 29 2015, 09:37    gerber Цитата(zltigo @ Aug 28 2015, 22:05) for(;... Aug 30 2015, 09:34     zltigo QUOTE (gerber @ Aug 30 2015, 12:34) В опе... Aug 30 2015, 10:01  Kabdim Цитата(zltigo @ Aug 28 2015, 20:17) Давай... Aug 28 2015, 18:27   zltigo QUOTE (Kabdim @ Aug 28 2015, 21:20) Не мо... Aug 28 2015, 18:36    Kabdim Демагогия в техническом споре... свежо! И легк... Aug 28 2015, 18:55 aaarrr Бессмысленной можно было бы признать запись while(... Aug 28 2015, 15:18 Mihey_K Сам по себе цикл с единичной итерацией да, бесмысл... Aug 28 2015, 15:21 Golikov A. вообще то, насколько я помню трюк
do
while(0)
созд... Aug 28 2015, 17:22 zltigo QUOTE (Golikov A. @ Aug 28 2015, 20:22) в... Aug 29 2015, 09:53 scifi Цитата(ViKo @ Aug 28 2015, 20:09) Думал, ... Aug 28 2015, 17:39 aaarrr Цитата(scifi @ Aug 28 2015, 20:39) Да это... Aug 28 2015, 17:51 zltigo QUOTE (scifi @ Aug 28 2015, 20:39) Да это... Aug 28 2015, 18:09 ViKo напишите for ( ; true; ), если пустота не нравится... Aug 28 2015, 17:57 Golikov A. ЦитатаСначала любые операнды типа CHAR или SHORT п... Aug 28 2015, 18:01 aaarrr Цитата(Golikov A. @ Aug 28 2015, 21:01) я... Aug 28 2015, 19:13 Golikov A. вот я знаю пример явно ошибочного выражения
Кодin... Aug 28 2015, 18:11 Golikov A. Цитатау K&R совершенно аналогично.
Это вообще ... Aug 29 2015, 03:34 zltigo QUOTE (Golikov A. @ Aug 29 2015, 06:34) Н... Aug 29 2015, 06:04 ViKo Что вы сцепились на пустом. Я вот ни разу не испол... Aug 29 2015, 04:30 Golikov A. ща и вам достанется.... как вы могли ни разу не ис... Aug 29 2015, 04:52 ViKo Цитата(Golikov A. @ Aug 29 2015, 07:52) щ... Aug 29 2015, 05:00 Golikov A. ЦитатаУже писал - в стандарте нет запрета на испол... Aug 29 2015, 06:22 ViKo Цитата(Golikov A. @ Aug 29 2015, 09:22) а... Aug 29 2015, 07:10  Сергей Борщ Цитата(ViKo @ Aug 29 2015, 10:10) Восклиц... Aug 29 2015, 14:55   zltigo QUOTE (Сергей Борщ @ Aug 29 2015, 17:55) ... Aug 29 2015, 14:59   ViKo Цитата(Сергей Борщ @ Aug 29 2015, 17:55) ... Aug 29 2015, 17:37 GetSmart Цитата(zltigo @ Aug 29 2015, 13:53) Ошибк... Aug 29 2015, 09:58 zltigo QUOTE (GetSmart @ Aug 29 2015, 12:58) Кон... Aug 29 2015, 10:14 GetSmart А разве while(1) не сам всевышний написал?
Цитат... Aug 29 2015, 10:22 zltigo QUOTE (GetSmart @ Aug 29 2015, 13:22) А р... Aug 29 2015, 10:32 GetSmart У цикла while только один аргумент - предусловие в... Aug 29 2015, 10:43 zltigo QUOTE (GetSmart @ Aug 29 2015, 13:43) У ц... Aug 29 2015, 11:35  GetSmart Цитата(zltigo @ Aug 29 2015, 15:35) Вот п... Aug 29 2015, 12:08 aaarrr Что касается предупреждений по поводу управляющего... Aug 29 2015, 11:25 GetSmart Для zltigo:
Качество кода ремарками не измеряется.... Aug 29 2015, 16:57  zltigo QUOTE (GetSmart @ Aug 29 2015, 19:57) Для... Aug 29 2015, 17:29   GetSmart Цитата(zltigo @ Aug 29 2015, 21:29) Писат... Aug 29 2015, 17:39    zltigo QUOTE (GetSmart @ Aug 29 2015, 20:39) Кри... Aug 29 2015, 17:47     ViKo Цитата(zltigo @ Aug 29 2015, 20:47) А смы... Aug 29 2015, 18:05      zltigo QUOTE (ViKo @ Aug 29 2015, 21:05) На то е... Aug 29 2015, 18:07       ViKo Цитата(zltigo @ Aug 29 2015, 21:07) Повто... Aug 29 2015, 18:14        zltigo QUOTE (ViKo @ Aug 29 2015, 21:14) Напомни... Aug 29 2015, 18:39         aaarrr Цитата(zltigo @ Aug 29 2015, 21:39) В воп... Aug 29 2015, 18:44          zltigo QUOTE (aaarrr @ Aug 29 2015, 21:44) Как В... Aug 29 2015, 19:00         aaarrr Цитата(zltigo @ Aug 29 2015, 21:39) Частн... Aug 29 2015, 19:10          zltigo QUOTE (aaarrr @ Aug 29 2015, 22:10) Чисто... Aug 29 2015, 19:28         GetSmart Цитата(zltigo @ Aug 29 2015, 22:39) Не со... Aug 29 2015, 23:04          zltigo QUOTE (GetSmart @ Aug 30 2015, 02:04) Пре... Aug 30 2015, 07:03           GetSmart Цитата(zltigo @ Aug 30 2015, 11:03) Делен... Aug 30 2015, 10:11            zltigo QUOTE (GetSmart @ Aug 30 2015, 13:11) Рем... Aug 30 2015, 10:17     GetSmart Цитата(zltigo @ Aug 29 2015, 21:47) Warni... Aug 29 2015, 18:14 scifi Гы-гы. Развели мегасрач на пустом месте. Модератор... Aug 29 2015, 11:57 Golikov A. ЦитатаОшибку того, что программист получил не то, ... Aug 29 2015, 15:42 zltigo QUOTE (Golikov A. @ Aug 29 2015, 18:42) Г... Aug 29 2015, 16:01  aaarrr Препроцессор тут с визгом притянут за уши. Это не ... Aug 29 2015, 16:07   zltigo QUOTE (aaarrr @ Aug 29 2015, 19:07) Препр... Aug 29 2015, 16:20    aaarrr Цитата(zltigo @ Aug 29 2015, 19:20) Что э... Aug 29 2015, 17:12     zltigo QUOTE (aaarrr @ Aug 29 2015, 20:12) 1 - э... Aug 29 2015, 17:39      aaarrr Цитата(zltigo @ Aug 29 2015, 20:39) А где... Aug 29 2015, 18:18   zltigo QUOTE (aaarrr @ Aug 29 2015, 19:07) Препр... Aug 30 2015, 08:53 ViKo Кстати, я никогда не пишу #if (0) или #if (1), а т... Aug 29 2015, 17:40
3 страниц
1 2 3 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|