Warnung unklar

Gast #178462
Lesenswert?

#include <inttypes.h>

#define REED_BUF_MASK 7

struct
foo_s
{
        uint8_t buf_idx;
};

int
main(void)
{
        volatile struct foo_s spd;

        while(1)
        {
                spd.buf_idx = (spd.buf_idx + 1) & REED_BUF_MASK;
        }

        /* NEVEREACHED */
        return 0;
}

Das gibt bei mir keinen Fehler, und auch keine Warnung.
Opt: -s, Debug: ELF/DWARF-2, MCU: mega8
Gast #178463
Lesenswert?

/* foo.h: ***************/
#define REED_BUF_MASK 7

typedef struct{
   uint8_t buf_idx;
}foo_t;

/* foo.c ***************/
#include "foo.h"
/* #include weiteres */

foo_t spd;

void nicht_main(void){
   /* code */
   spd.buf_idx = (spd.buf_idx + 1) & REED_BUF_MASK;
   /* code */
}
Angehängte Dateien:
Gast #178466
Lesenswert?

Naja, der Code in kombination mit dem Makefile ist nicht Kompilierbar.
Wenn ich es so Modifiziere, daß es sich kompilieren lässt (fehlende
includes etc), bekomme ich wieder keine Fehlermeldung!
Gast #178467
Lesenswert?

Ich bin ein riesen Rindvieh und versinke im Boden. In meinem Kopf war
REED_BUF_MASK ne simple Konstante und nach ner durchzechten
Programmiernacht (Termindruck;-) irgendwie nicht mehr im bewußten
Blickfeld...

#define REED_BUF_SIZE 8
#define REED_BUF_MASK REED_BUF_SIZE-1

Sorry und vielen Dank!!!

So ist alles tutti:
#define REED_BUF_MASK (REED_BUF_SIZE-1)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren