Hello,

I have, before my eyes, source code, but I can't understand certain parts of
it:

1. #pragma - what does it mean, is it some directive for precompilator?.
for example: what does it mean - #pragma resource "*.dfm;" or
or #pragma package (smart_init);?.
2. what does word __fastcall mean in expression
int __fastcall ABC:SetABC() {};
3. what does expression: k = 1 << i; mean?.
4. what is the effect of running following line of text:
SignalForm->CheckBox20->Enabled = (maskIO & 0x08) ? true :
false;
I particularly mean expression in parenthesis: (maskIO & 0x08) what
does it mean?.
Shouldn't there be applied bit conjunction operator?.

Thank You for answer.

Recommended Answers

All 2 Replies

> #pragma - what does it mean
to understand what #pragma is see: http://msdn.microsoft.com/en-us/library/d9x1s805(vs.71).aspx
for the specific #pragma directives that are in your code, refer to your compiler docs.

> what does word __fastcall mean
__fastcall is an implementation-defined keyword in microsoft and several other compilers. it specifies a particular calling convention for a function.
http://msdn.microsoft.com/en-us/library/6xa169sk(VS.71).aspx

> what does expression: k = 1 << i; mean?.
> (maskIO & 0x08) what does it mean?.
these are C/C++ bitwise operators. http://www.cprogramming.com/tutorial/bitwise_operators.html

I will try to answer these .. but I'd suggest looking them up online also.

1. #pragma is a compiler directive. For example #pragma pack(n) .. specifies the packing alignment for structures and unions (ie 1 byte boundary, 4 byte boundary and so forth).
here is some more information.

2. for _fastcall see here

3. k = 1 << i : << is the shift left operator. In this case you are left shifting 1 by i bits, and assigning the result to k.

For example if i = 3, then you are doing 0000 00001 << 3 = 0000 0100 = 4

4. maskIO & 0x08 does a bitwise AND of hexadecimal 08 with maskIO. Lets assume maskIO is 10.

0000 1010
AND 0000 1000
------------
0000 1000

so if maskIO has the same bits ON as 0x08 then your signal is set to enabled.

See here for more info about Bitwise Operations.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.