943,641 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 608
  • C++ RSS
Sep 26th, 2008
0

a few questions about C++ source code

Expand Post »
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 ABCetABC() {};
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.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
mac1234mac is offline Offline
1 posts
since Sep 2008
Sep 26th, 2008
0

Re: a few questions about C++ source code

> #pragma - what does it mean
to understand what #pragma is see: http://msdn.microsoft.com/en-us/libr...05(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/libr...sk(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...operators.html
Reputation Points: 1159
Solved Threads: 285
Posting Virtuoso
vijayan121 is offline Offline
1,606 posts
since Dec 2006
Sep 26th, 2008
0

Re: a few questions about C++ source code

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.
Reputation Points: 161
Solved Threads: 43
Posting Whiz
stilllearning is offline Offline
309 posts
since Oct 2007

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: Container Adapter Confusion
Next Thread in C++ Forum Timeline: mfc





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC