Kod: Markera allt
typedef char* CharPointer;
CharPointer A = "X";
CharPointer B = "Y";
Kod: Markera allt
typedef char* CharPointer;
CharPointer A = "X";
CharPointer B = "Y";
Kod: Markera allt
typedef char *charPointer_t;
typedef char[] charArray_t;
charArray_t a = "X"; // Array av storlek 2, initialiserad av strängliteral
charArray_t b = "Y"; // Array av storlek 2, initialiserad av strängliteral
charArray_t c = "Zebra"; // Array av storlek 6, initialiserad av strängliteral
// Nedanstående går inte i varken C eller C++:
a = "B";
a = b;
// Nedanstående är tillåtet i C men inte i C++ eftersom
// en sträng-literal i C++ har typen "const char[]".
// medans C fortsätter att använda typen "char[]" för sträng-literaler.
charPointer_t p = "Y";
// Undefined behaviour även i C. Kan leda till att programmet krashar.
p[0] = '?';
Och EOT är "End Of Transmission". I ASCII är det 0x04. I UNIX har man valt att använda EOT / 0x04 / Ctrl-D för att signalera end of file om man skickar det via terminalen. I EBCDIC är EOT 0x37.
Det tycker jag inte. På den tiden då C utvecklades så hade processorer få register och minne var dyrt.
Hänger inte riktigt med på ovanstående.Findecanor skrev: ↑26 september 2020, 09:58:53Kod: Markera allt
typedef char *charPointer_t; typedef char[] charArray_t; charArray_t a = "X"; // Array av storlek 2, initialiserad av strängliteral charArray_t b = "Y"; // Array av storlek 2, initialiserad av strängliteral charArray_t c = "Zebra"; // Array av storlek 6, initialiserad av strängliteral // Nedanstående går inte i varken C eller C++: a = "B"; a = b; // Nedanstående är tillåtet i C men inte i C++ eftersom // en sträng-literal i C++ har typen "const char[]". // medans C fortsätter att använda typen "char[]" för sträng-literaler. charPointer_t p = "Y"; // Undefined behaviour även i C. Kan leda till att programmet krashar. p[0] = '?';
Kod: Markera allt
/*
typedef char* CharPointer;
CharPointer Rb = "RB";
CharPointer Rc = "RC";
*/
typedef char[] charArray;
charArray Rb = "RB";
charArray Ra = "RC";
Kod: Markera allt
void rRefAdjust(CharPointer c){
bool breakFlag = true;
double averageVoltA;
double averageVoltB;
double vDiff;
Serial.write(c); // Java-datorn skannar data från Arduino mha
Serial.write("\n"); // java.util.Scanner.Scanner(InputStream source)
while(breakFlag){ // Den inväntar texten RA eller RB innan data börjar
averageVoltA = 0; // samlas in
averageVoltB = 0;
vDiff = 0;
averageData(averageVoltA, averageVoltB, vDiff); // mät obalansen medelvärdesbilda en aning
adjustAlert(vDiff); // skicka obalansspänning till Java-dator
if (Serial.available() > 0){ // kommando sänt? Avbryt balanstrimmning av brygga?
if(Serial.read() == WHILE_LOOP_BREAK){ // 200 avbryter while-loop
breakFlag = false;
}
}
}
}
Är inte problemet att du försöker tilldela en "const char *" till en variabel deklarerad som "char *"? (Det hela vore så mycket enklare om du angav vilket felmeddelande du får.4kTRB skrev: ↑26 september 2020, 00:29:54Kod: Markera allt
typedef char* CharPointer; CharPointer A = "X"; CharPointer B = "Y";
Kod: Markera allt
typedef const char* StringPointer;
StringPointer A = "X";
StringPointer B = "Y";