typedef struct __attribute__((__packed__)) {
uint16_t firmware_version; // Minor, Major version
uint16_t buildcount;
char build_date[10];
char firmware_name[128];
} firmware_t;
< /code>
Ich habe versucht, eine Funktion zu definieren < /p>
void printFirmwareInfo(firmware_t *firmware, size_t len) { ...}
< /code>
, aber der Compiler wurde völlig verwirrt und glaubte, dass PrintiMWareInfo eine Variable oder ein Feld war und keine Firmware_t im Geltungsbereich sehen konnte. < /p>
error: variable or field 'printFirmwareInfo' declared void
void printFirmwareInfo(firmware_t *firmware, size_t len) {
error: 'firmware_t' was not declared in this scope
void printFirmwareInfo(firmware_t *firmware, size_t len) {
< /code>
Ich musste den Parameter als uint8_t * übergeben und ihn in die Funktion zurückgeben < /p>
void printFirmwareInfo(uint8_t *data, size_t len) {
firmware_t *firmware = (firmware_t *)data;
Serial.printf("Firmware Version: %u.%u\n", firmware->firmware_version >> 8, firmware->firmware_version & 0xFF);
Serial.printf("Build Count: %u\n", firmware->buildcount);
< /code>
Ist es ein Fehler oder wie es sein soll? />#include
#include
#include
#include
Ich habe einen Typedef < /p> [code]typedef struct __attribute__((__packed__)) { uint16_t firmware_version; // Minor, Major version uint16_t buildcount; char build_date[10]; char firmware_name[128]; } firmware_t; < /code> Ich habe versucht, eine Funktion zu definieren < /p> void printFirmwareInfo(firmware_t *firmware, size_t len) { ...} < /code> , aber der Compiler wurde völlig verwirrt und glaubte, dass PrintiMWareInfo eine Variable oder ein Feld war und keine Firmware_t im Geltungsbereich sehen konnte. < /p> error: variable or field 'printFirmwareInfo' declared void void printFirmwareInfo(firmware_t *firmware, size_t len) {
error: 'firmware_t' was not declared in this scope void printFirmwareInfo(firmware_t *firmware, size_t len) { < /code> Ich musste den Parameter als uint8_t * übergeben und ihn in die Funktion zurückgeben < /p> void printFirmwareInfo(uint8_t *data, size_t len) { firmware_t *firmware = (firmware_t *)data; Serial.printf("Firmware Version: %u.%u\n", firmware->firmware_version >> 8, firmware->firmware_version & 0xFF); Serial.printf("Build Count: %u\n", firmware->buildcount); < /code> Ist es ein Fehler oder wie es sein soll? />#include #include #include #include [/code] Die Typedefs befinden sich über den Funktionen
Ich kann statisches Q(P) im folgenden Codebeispiel nicht verstehen:
typedef int P();
typedef int Q();
class X {
static P(Q); // define Q to be a P.
// equivalent to `static int Q()`
// the...
Ich kann statisches Q(P) im folgenden Codebeispiel nicht verstehen:
typedef int P();
typedef int Q();
class X {
static P(Q); // define Q to be a P.
// equivalent to `static int Q()`
// the...
Ich versuche, eine Reihe von Funktionen auf einem geordneten Wertearray mit einer separaten Reihe von IF-ELSE-Anweisungen auszuführen, die feststellen, welche Funktionen in welcher Reihenfolge...