Ich habe eine .c-Datei und zwei Header. Ich habe keine Ahnung, warum diese Fehler aufgetreten sind. Ich habe versucht, Lösungen im Netz zu finden, konnte sie aber nicht auf meinen Code anwenden.Fehler beim Beheben von Fehlern in C
Structs.h
#ifndef STRUCTS_H
#define STRUCTS_H
typedef struct stream
{
char* enc; //binary string
int pos;
}stream;
typedef struct tag
{
int tagClass;
char tagConstructed;
char tagNumber;
}tag;
#endif
Funcs.h Fehler:
Error 22 error C2143: syntax error : missing '{' before '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 15 1 asn1
Error 26 error C2143: syntax error : missing '{' before '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 36 1 asn1
Error 21 error C2143: syntax error : missing ')' before '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 15 1 asn1
Error 25 error C2143: syntax error : missing ')' before '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 36 1 asn1
Error 15 error C2061: syntax error : identifier 'isUniversal' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 3 1 asn1
Error 18 error C2061: syntax error : identifier 'isEOC' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 7 1 asn1
Error 17 error C2059: syntax error : 'type' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 3 1 asn1
Error 20 error C2059: syntax error : 'type' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 7 1 asn1
Error 16 error C2059: syntax error : ';' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 3 1 asn1
Error 19 error C2059: syntax error : ';' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 7 1 asn1
Error 24 error C2059: syntax error : ')' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 15 1 asn1
Error 28 error C2059: syntax error : ')' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 36 1 asn1
Error 23 error C2059: syntax error : '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 15 1 asn1
Error 27 error C2059: syntax error : '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 36 1 asn1
#ifndef FUNCS_H
#define FUNCS_H
#include "Structs.h"
bool isUniversal(tag curTag);
bool isEOC(tag curTag);
char getByte(stream curStream);
void parseTag(stream & str, tag & tag);
char parseLength(stream & str);
#endif
Functions.c Fehler:
Error 22 error C2143: syntax error : missing '{' before '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 15 1 asn1
Error 26 error C2143: syntax error : missing '{' before '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 36 1 asn1
Error 21 error C2143: syntax error : missing ')' before '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 15 1 asn1
Error 25 error C2143: syntax error : missing ')' before '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 36 1 asn1
Error 15 error C2061: syntax error : identifier 'isUniversal' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 3 1 asn1
Error 18 error C2061: syntax error : identifier 'isEOC' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 7 1 asn1
Error 17 error C2059: syntax error : 'type' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 3 1 asn1
Error 20 error C2059: syntax error : 'type' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 7 1 asn1
Error 16 error C2059: syntax error : ';' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 3 1 asn1
Error 19 error C2059: syntax error : ';' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 7 1 asn1
Error 24 error C2059: syntax error : ')' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 15 1 asn1
Error 28 error C2059: syntax error : ')' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 36 1 asn1
Error 23 error C2059: syntax error : '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 15 1 asn1
Error 27 error C2059: syntax error : '&' c:\users\natasha\documents\visual studio 2012\projects\asn1\asn1\functions.c 36 1 asn1
#include "Funcs.h"
bool isUniversal(tag curTag) {
return curTag.tagClass == 0x00;
}
bool isEOC(tag curTag) {
return (curTag.tagClass == 0x00) && (curTag.tagNumber == 0x00);
}
char getByte(stream curStream) {
return curStream.enc[curStream.pos];
}
void parseTag(stream & str, tag & tag)
{
char buf, tempNumber;
buf = getByte(str);
tempNumber = 0x00;
tag.tagClass = buf >> 6;
tag.tagConstructed = ((buf & 0x20) != 0);
tag.tagNumber = buf & 0x1F;
if (tag.tagNumber == 0x1F)
{
do
{
str.pos++;
buf = getByte(str);
tempNumber = (tempNumber << 7) | (buf & 0x7F);
}while(buf & 0x80);
tag.tagNumber = tempNumber;
}
}
char parseLength(stream & str) {
char buf, len;
int numberOfOctets, i;
buf = getByte(str);
len = 0x00;
numberOfOctets = 0;
if (buf < 0x80) {
len = buf; //short form
} else { //long form
numberOfOctets = buf & 0x7F;
for (i = 0; i < numberOfOctets; ++i) {
len = (len * 256) + getByte(str);
str.pos++;
}
}
return len;
}
C hat keine Referenzen wie C++ .. 'void parseLength (Stream & str);' ist keine gültige Syntax (wegen '&'). Sie können stattdessen Zeiger verwenden. – Dmitri
@Dmitri, thanks! Dieser Rat Ich habe versucht, hinzuzufügen, aber der Compiler kann diesen Header nicht erkennen/ –
MyName
Ältere Versionen von C haben keinen 'Bool'-Typ , aber du kannst stattdessen einen Integer-Typ verwenden ... C99 und höher kannst du 'bool' bekommen, indem du die' stdbool.h' -Header einfügst – Dmitri