unsigned short Type = 'MB'; ???
-
was man so alles in fremden Quellcodes entdeckt ;):
unsigned short Type = 'MB';
es wir hier angenommen, dass ein unsigned short genau 2 byte groß ist - ist das Standardkonform? (abgesehen davon das man nicht annehmen, kann das auf jeden System ein char 2 byte groß ist)
-
Vertexwahn schrieb:
was man so alles in fremden Quellcodes entdeckt ;):
unsigned short Type = 'MB';
es wir hier angenommen, dass ein unsigned short genau 2 byte groß ist - ist das Standardkonform? (abgesehen davon das man nicht annehmen, kann das auf jeden System ein char 2 byte groß ist)
das ein Compiler sowas frisst, wundert mich, denn 'X' ist Platzhalter für ein Zeichen, und 'MB' ist nicht ein Zeichen sondern 2. Bei mir kommt es
yanezp@peleliu:~ > cat a.c #include <stdio.h> int main() { char c = 'MB'; unsigned short Type = 'MB'; printf("%c %d\n", c, Type); return 0; } yanezp@peleliu:~ > gcc a.c a.c: In function `main': a.c:5: warning: multi-character character constant a.c:5: warning: overflow in implicit constant conversion a.c:6: warning: multi-character character constant yanezp@peleliu:~ > ./a.out B 19778
das ist nicht Standardkonform.