/* * Nastavi zadany bit v poli na hodnotu zadanou vyrazem */ inline void SetBit_inline(unsigned long *jmeno_pole, long index, int vyraz, size_t mez) { // kontrola mezi if (index > (long)mez || index < 0) Error("Index %ld mimo rozsah 0..%ld", index, (long)mez); else if (vyraz) jmeno_pole[BitPos(index)] |= BitMask(index); else jmeno_pole[BitPos(index)] &= ~BitMask(index); }
long WINAPI DLLExport Expression(LPRDATA rdPtr,long param1) { long p1 = CNC_GetFirstExpressionParameter(rdPtr, param1, TYPE_INT); long p2 = CNC_GetNextExpressionParameter(rdPtr, param1, TYPE_INT); char* p3 = (char*)CNC_GetNextExpressionParameter(rdPtr, param1, TYPE_STRING); // Performs the wonderfull calculation return BitMask(p1,p2,p3); }
/* * Ziska hodnotu zadaneho bitu */ inline int GetBit_inline(unsigned long *jmeno_pole, long index, size_t mez) { return (index > (long)mez || index < 0) ? (Error("Index %ld mimo rozsah 0..%ld", index, (long)mez), 0) : ((jmeno_pole[BitPos(index)] & BitMask(index)) != 0); }
unsigned int SingleMask( unsigned int num , char* mask ) { return BitMask(num,0,mask); }