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.


Anmelden zum Antworten