реклама на сайте
подробности

 
 
> Cpp check ругается, можно ли так писать?
ViKo
сообщение Feb 6 2018, 12:34
Сообщение #1


Универсальный солдатик
******

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



Имею массив из float и указатель на него.

Код
  pSigRe = SigRe;
  for (uint32_t i = FFT_N; i--; ) {
    *pSigRe++ = log2f(*pSigRe) * 15.0515;
  }


При проверке cpp check выдает ошибку.
Кратко: Expression '*pSigRe++=log2f(*pSigRe)*15.0515' depends on order of evaluation of side effects
Сообщение: Expression '*pSigRe++=log2f(*pSigRe)*15.0515' depends on order of evaluation of side effects
Точно, так нельзя писать? w00t.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mcheb
сообщение Feb 7 2018, 06:16
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Решил проверить в GCC
Код
    uint16_t i;
    float SigRe[16],*pSigRe;
    pSigRe = SigRe;
    for(i=0; i<16; i++) SigRe[i] = 2.*(i+1);
    for(i=0; i<16; i++) *pSigRe++ = log2f(*pSigRe) * 15.0515;
    for(i=0; i<16; i++) printf("i = %u SigRe[%u] = %f12.5\n",i,i,SigRe[i]);

    for(i=0; i<16; i++) SigRe[i] = 2.*(i+1);
    for(i=0; i<16; i++) SigRe[i] = log2f(SigRe[i]) * 15.0515;
    for(i=0; i<16; i++) printf("i = %u SigRe[%u] = %f12.5\n",i,i,SigRe[i]);

Получил
Код
i = 0 SigRe[0] = 30.10300112.5
i = 1 SigRe[1] = 38.90756212.5
i = 2 SigRe[2] = 45.15449912.5
i = 3 SigRe[3] = 50.00000012.5
i = 4 SigRe[4] = 53.95906412.5
i = 5 SigRe[5] = 57.30640412.5
i = 6 SigRe[6] = 60.20600112.5
i = 7 SigRe[7] = 62.76362612.5
i = 8 SigRe[8] = 65.05149812.5
i = 9 SigRe[9] = 67.12113212.5
i = 10 SigRe[10] = 69.01056712.5
i = 11 SigRe[11] = 70.74866512.5
i = 12 SigRe[12] = 72.35790312.5
i = 13 SigRe[13] = 73.85606412.5
i = 14 SigRe[14] = 75.25750012.5
i = 15 SigRe[15] = -1913.32995612.5
i = 0 SigRe[0] = 15.05150012.5
i = 1 SigRe[1] = 30.10300112.5
i = 2 SigRe[2] = 38.90756212.5
i = 3 SigRe[3] = 45.15449912.5
i = 4 SigRe[4] = 50.00000012.5
i = 5 SigRe[5] = 53.95906412.5
i = 6 SigRe[6] = 57.30640412.5
i = 7 SigRe[7] = 60.20600112.5
i = 8 SigRe[8] = 62.76362612.5
i = 9 SigRe[9] = 65.05149812.5
i = 10 SigRe[10] = 67.12113212.5
i = 11 SigRe[11] = 69.01056712.5
i = 12 SigRe[12] = 70.74866512.5
i = 13 SigRe[13] = 72.35790312.5
i = 14 SigRe[14] = 73.85606412.5
i = 15 SigRe[15] = 75.25750012.5
Hello world!


Ругается на
Prj\Hello\main.c:12:32: warning: operation on 'pSigRe' may be undefined [-Wsequence-point]
for(i=0; i<16; i++) *pSigRe++ = log2f(*pSigRe) * 15.0515;
Выходит, что нельзя так.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ViKo   Cpp check ругается   Feb 6 2018, 12:34
- - V_G   Цитата(ViKo @ Feb 6 2018, 22:34) Точно, т...   Feb 6 2018, 12:56
|- - ViKo   Цитата(V_G @ Feb 6 2018, 15:56) Мне непон...   Feb 6 2018, 13:00
|- - megajohn   проверьте так pSigRe = SigRe; for (uint32_t i =...   Feb 6 2018, 13:18
|- - ViKo   Цитата(megajohn @ Feb 6 2018, 16:18) пров...   Feb 6 2018, 13:35
- - Kabdim   Цитатаолучить адрес (попутно инкрементированной) п...   Feb 6 2018, 13:30
- - _pv   Цитата(ViKo @ Feb 6 2018, 19:34) Сообщени...   Feb 6 2018, 13:34
|- - jcxz   Цитата(_pv @ Feb 6 2018, 15:34) на *pSigR...   Feb 6 2018, 14:00
|- - ViKo   Цитата(jcxz @ Feb 6 2018, 17:00) Из первы...   Feb 6 2018, 14:08
|- - jcxz   Цитата(ViKo @ Feb 6 2018, 16:06) По сущес...   Feb 6 2018, 14:09
|- - ViKo   Цитата(jcxz @ Feb 6 2018, 17:09) И...? Ка...   Feb 6 2018, 14:12
|- - jcxz   Цитата(ViKo @ Feb 6 2018, 16:12) Вы прика...   Feb 6 2018, 14:19
- - jcxz   Цитата(ViKo @ Feb 6 2018, 14:34) Кратко: ...   Feb 6 2018, 13:53
|- - ViKo   Цитата(jcxz @ Feb 6 2018, 16:53) Это вопр...   Feb 6 2018, 13:55
- - ViKo   Ладно. Значит, нужно найти точное толкование, когд...   Feb 6 2018, 14:22
|- - jcxz   Цитата(ViKo @ Feb 6 2018, 16:22) Ладно. З...   Feb 6 2018, 14:45
- - x893   Цитата(jcxz @ Feb 6 2018, 17:19) Нет. Не ...   Feb 6 2018, 14:26
|- - ViKo   Цитата(x893 @ Feb 6 2018, 17:26) Пример н...   Feb 6 2018, 14:30
|- - Сергей Борщ   QUOTE (ViKo @ Feb 6 2018, 16:30) Так, жду...   Feb 6 2018, 14:36
||- - ViKo   Цитата(Сергей Борщ @ Feb 6 2018, 17:36) В...   Feb 6 2018, 14:39
||- - jcxz   Цитата(ViKo @ Feb 6 2018, 16:39) Здесь то...   Feb 6 2018, 14:43
||- - haker_fox   QUOTE (ViKo @ Feb 6 2018, 22:39) Здесь то...   Feb 6 2018, 14:44
|- - SSerge   Цитата(ViKo @ Feb 6 2018, 21:30) Так, жду...   Feb 6 2018, 14:44
|- - ViKo   Цитата(SSerge @ Feb 6 2018, 17:44) Изволь...   Feb 6 2018, 14:57
|- - Сергей Борщ   QUOTE (ViKo @ Feb 6 2018, 16:57) Это уж д...   Feb 6 2018, 15:48
|- - jcxz   Цитата(ViKo @ Feb 6 2018, 16:57) Это уж д...   Feb 6 2018, 16:33
- - haker_fox   QUOTE (ViKo @ Feb 6 2018, 20:34) Точно, т...   Feb 6 2018, 14:41
- - haker_fox   Первый пример я бы записал так: CODE for (uin...   Feb 6 2018, 14:46
- - Arlleex   Довольно интересная тема в Си, связанная с базовым...   Feb 6 2018, 15:54
- - Den64   Цитата(ViKo @ Feb 6 2018, 15:34) Имею мас...   Feb 6 2018, 16:41
|- - Arlleex   Цитата(Den64 @ Feb 6 2018, 20:41) Должно ...   Feb 6 2018, 17:00
- - x893   А если вдруг запустит на двух- и более процессорно...   Feb 6 2018, 16:47
- - DASM   Хорошо вас тут читать.. но.. мое мнение если можно...   Feb 6 2018, 17:23
|- - jcxz   Цитата(DASM @ Feb 6 2018, 19:23) Я лично ...   Feb 6 2018, 17:58
|- - Arlleex   Цитата(DASM @ Feb 6 2018, 20:23) Хорошо в...   Feb 6 2018, 17:58
- - AnatolyT   Имеем следующее pSigRe = SigRe; for (uint32_t i...   Feb 6 2018, 18:41
- - ViKo   Не считайте упрямством, хочу разобраться. Постинкр...   Feb 6 2018, 20:00
|- - Arlleex   Цитата(ViKo @ Feb 6 2018, 23:00) Не счита...   Feb 6 2018, 20:24
|- - jcxz   Цитата(ViKo @ Feb 6 2018, 22:00) Не счита...   Feb 6 2018, 21:37
- - ViKo   Компилятор использовал следующую команду для запис...   Feb 6 2018, 20:49
|- - Arlleex   Цитата(ViKo @ Feb 6 2018, 23:49) Компилят...   Feb 6 2018, 21:01
- - ViKo   Мог бы... Но не сделал. А сделал так, как мне и бы...   Feb 7 2018, 05:10
- - V_G   Я думаю, если ассемблер данного конкретного контро...   Feb 7 2018, 05:22
|- - jcxz   Цитата(V_G @ Feb 7 2018, 07:22) Я думаю, ...   Feb 7 2018, 11:43
- - Arlleex   Цитата(ViKo @ Feb 7 2018, 08:10) Вопрос, ...   Feb 7 2018, 05:41
- - x893   А еще правильнее написать авторам cppcheck и задат...   Feb 7 2018, 06:03
|- - Сергей Борщ   QUOTE (x893 @ Feb 7 2018, 08:03) А еще пр...   Feb 7 2018, 07:46
- - ViKo   CODE**********************************************...   Feb 7 2018, 09:53
|- - haker_fox   ViKo, учтите замечания анализатора. Зачем вам писа...   Feb 7 2018, 14:22
- - Arlleex   Привел код. Скомпилировал на C++ Builder 2010 и в ...   Feb 7 2018, 10:19
- - ViKo   Усё, таперича проникся. Просвещен. Спасибо всем не...   Feb 7 2018, 10:50
- - ViKo   Зависит от типа оптимизации. Пусть хоть весь цикл ...   Feb 7 2018, 11:58
- - Kabdim   Удивляет что половина вроде как "опытных...   Feb 7 2018, 12:22
|- - Arlleex   Цитата(Kabdim @ Feb 7 2018, 16:22) Удивля...   Feb 7 2018, 13:20
|- - DASM   Цитата(Kabdim @ Feb 7 2018, 15:22) Удивля...   Feb 7 2018, 14:14
|- - Kabdim   Цитата(DASM @ Feb 7 2018, 17:14) Многие о...   Feb 7 2018, 15:04
|- - DASM   Цитата(Kabdim @ Feb 7 2018, 18:04) Сравни...   Feb 7 2018, 15:23
- - Kabdim   Собственно к тем кто не пишет никаких претензий не...   Feb 7 2018, 15:28
- - DASM   Согласен   Feb 7 2018, 15:32
- - sigmaN   Только на элкетрониксе могут написать еще страницы...   Feb 7 2018, 17:25
|- - jcxz   Цитата(sigmaN @ Feb 7 2018, 19:25) Как, к...   Feb 7 2018, 17:55
|- - DASM   Цитата(sigmaN @ Feb 7 2018, 20:25) Только...   Feb 7 2018, 19:04
- - ViKo   Мне страниц не жалко. Пусть хоть 33 будет. Не знат...   Feb 7 2018, 18:26


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th August 2025 - 13:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016