2016-10-26 3 views
6

Was bedeutet folgende 0x0\1 im folgenden Code bedeuten? Ich finde dies in einem eingebetteten C-Code:seltsamer Backslash-Operator in C-Zuordnung

uint16 size; 
... 
size += (size & 0x0\1); 

Es ist Teil von Texas Instruments freigegebenen Code. Es kompiliert in IAR ARM IDE.

+4

Ich bin nicht in der Lage, den fraglichen Code zu kompilieren. – CalmBit

+0

Es ist Teil von TI veröffentlichten Code. Es kompiliert in IAR ARM IDE. –

+0

Wahrscheinlich nur Oktal 1. Aber frag mich nicht warum. – deamentiaemundi

Antwort

4

Nicht portierbarer, implementierungsabhängiger, nicht standardkonformer Code. Es ist eine Vermutung, was der ursprüngliche Autor beabsichtigt hat, aber "wahrscheinlich" bedeutet size += size & 0x1. Das heißt: Inkrementieren Sie die Größe um 1, wenn die Größe der Größe ungerade ist (dh das niedrigstwertige Bit ist 1).