|
Cpp check ругается, можно ли так писать? |
|
|
|
Feb 6 2018, 12:34
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 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 Точно, так нельзя писать?
|
|
|
|
|
 |
Ответов
|
Feb 7 2018, 06:16
|
Местный
  
Группа: Участник
Сообщений: 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; Выходит, что нельзя так.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|