• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co może znaczyć operator ~= w c ?

Object Storage Arubacloud
0 głosów
308 wizyt
pytanie zadane 1 maja 2018 w C i C++ przez Konrad Gałach Użytkownik (880 p.)

Witam ostatnio natknąłem się na coś takiego w pewnym kodzie c ,który się nie kompilował.Moje pytanie brzmi czy w ogóle istnieje coś takiego w C a jeśli tak to jak tego używać(operatora ~=)?

 

#include <stdio.h>
 
#define SYNC   0xAA
#define EXCODE 0x55
 
int parsePayload( unsigned char *payload, unsigned char pLength ) {
 
    unsigned char bytesParsed = 0;
    unsigned char code;
    unsigned char length;
    unsigned char extendedCodeLevel;
    int i;
 
    /* Loop until all bytes are parsed from the payload[] array... */
    while( bytesParsed < pLength ) {
 
        /* Parse the extendedCodeLevel, code, and length */
        extendedCodeLevel = 0;
        while( payload[bytesParsed] == EXCODE ) {
            extendedCodeLevel++;
            bytesParsed++;
        }
        code = payload[bytesParsed++];
        if( code & 0x80 ) length = payload[bytesParsed++];
        else              length = 1;
 
        /* TODO: Based on the extendedCodeLevel, code, length,
         * and the [CODE] Definitions Table, handle the next
         * "length" bytes of data from the payload as
         * appropriate for your application.
         */
        printf( "EXCODE level: %d CODE: 0x%02X length: %d\n",
                extendedCodeLevel, code, length );
        printf( "Data value(s):" );
        for( i=0; i<length; i++ ) {
            printf( " %02X", payload[bytesParsed+i] & 0xFF );
        }
        printf( "\n" );
 
        /* Increment the bytesParsed by the length of the Data Value */
        bytesParsed += length;
    }
 
    return( 0 );
}
 
int main( int argc, char **argv ) {
 
    int checksum;
    unsigned char payload[256];
    unsigned char pLength;
    unsigned char c;
    unsigned char i;
 
    /* TODO: Initialize 'stream' here to read from a serial data
     * stream, or whatever stream source is appropriate for your
     * application.  See documentation for "Serial I/O" for your
     * platform for details.
     */
    FILE *stream = 0;
    stream = fopen( "COM4", "r" );
 
    /* Loop forever, parsing one Packet per loop... */
    while( 1 ) {
 
        /* Synchronize on [SYNC] bytes */
        fread( &c, 1, 1, stream );
        if( c != SYNC ) continue;
        fread( &c, 1, 1, stream );
        if( c != SYNC ) continue;
 
        /* Parse [PLENGTH] byte */
        while( true ) {
            fread( &pLength, 1, 1, stream );
            if( pLength ~= 170 ) break;
        }
        if( pLength > 169 ) continue;
 
        /* Collect [PAYLOAD...] bytes */
        fread( payload, 1, pLength, stream );
 
        /* Compute [PAYLOAD...] chksum */
        checksum = 0;
        for( i=0; i<pLength; i++ ) checksum += payload[i];
        checksum &= 0xFF;
        checksum = ~checksum & 0xFF;
 
        /* Parse [CKSUM] byte */
        fread( &c, 1, 1, stream );
 
        /* Verify [PAYLOAD...] chksum against [CKSUM] */
        if( c != checksum ) continue;
 
        /* Since [CKSUM] is OK, parse the Data Payload */
        parsePayload( payload, pLength );
    }
 
    return( 0 );
}

 

3 odpowiedzi

0 głosów
odpowiedź 1 maja 2018 przez Knayder Nałogowiec (37,640 p.)
komentarz 1 maja 2018 przez Konrad Gałach Użytkownik (880 p.)
edycja 2 maja 2018 przez Konrad Gałach
Chodzi mi o to co to  if(zmienna ~=5) by miało znaczyć?
0 głosów
odpowiedź 1 maja 2018 przez 1234 Dyskutant (9,140 p.)
W Lua ~= znaczy to samo co w innych językach != może o to chodzi
komentarz 1 maja 2018 przez Konrad Gałach Użytkownik (880 p.)
Chodzi mi o c
komentarz 1 maja 2018 przez Konrad Gałach Użytkownik (880 p.)
A dokładnie to if( pLength > 169 ) continue;
komentarz 1 maja 2018 przez 1234 Dyskutant (9,140 p.)
Chodzi mi oto że może ktoś zamiast != wpisał ~=
0 głosów
odpowiedź 1 maja 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Nie istnieje i nie ma prawa istnieć. Operator ~ co prawda istnieje, lecz jest to operator jednoargumentowy. Natomiast zapis w postaci <operator>=, np. +=, -=, /= itd. dotyczy operatorów dwuargumentowych.

Podobne pytania

0 głosów
2 odpowiedzi 560 wizyt
pytanie zadane 22 marca 2020 w C i C++ przez wall7489 Obywatel (1,250 p.)
0 głosów
2 odpowiedzi 4,679 wizyt
pytanie zadane 27 sierpnia 2019 w C i C++ przez soq72630 Nowicjusz (180 p.)
0 głosów
1 odpowiedź 2,020 wizyt
pytanie zadane 27 sierpnia 2019 w C i C++ przez soq72630 Nowicjusz (180 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...