Typy v C++

Pavel Kutina hw na prelude.cz
Pátek Leden 14 16:13:01 CET 2022


Zdravím,

opět něco nechápu, můžete mne poštouchnout?

Píšu FW v STM Cube, mám deklarované dvě proměnné:

unsigned int cnt = 0;
uint16_t LastCounter = 0;

při porovnání v:

if (LastCounter+1 == cnt)

mi to píše warning:
../src/receive.cpp:129:22: warning: comparison of integer expressions of 
different signedness: 'int' and 'unsigned int' [-Wsign-compare]
  129 |    if ( (LastCounter+1) == cnt)
      |        ~~~~~~~~~~~~~~^~~~~~

Chápu dobře, že unsigned int a uint16_t nejsou znaménkově kompatibilní typy? 
Proč ne?

Na něco podbného jsem narazil před chvílí u sscanf, kde se mi to zase 
vztekalo pri použití uint16_t (jsem tam měl) místo unsigned int (který to 
chtělo).

Popravdě, asi 90% času tohoto projektu trávím rovnáním datových typů, hodne 
v tom plavu :(

Díky.

Pavel Kutina



Další informace o konferenci Hw-list