a few questions about C++ source code

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Sep 2008
Posts: 1
Reputation: mac1234mac is an unknown quantity at this point 
Solved Threads: 0
mac1234mac mac1234mac is offline Offline
Newbie Poster

a few questions about C++ source code

 
0
  #1
Sep 26th, 2008
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.
Reply With Quote Quick reply to this message  
Join Date: Dec 2006
Posts: 1,089
Reputation: vijayan121 is a name known to all vijayan121 is a name known to all vijayan121 is a name known to all vijayan121 is a name known to all vijayan121 is a name known to all vijayan121 is a name known to all 
Solved Threads: 164
vijayan121 vijayan121 is offline Offline
Veteran Poster

Re: a few questions about C++ source code

 
0
  #2
Sep 26th, 2008
> #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
Reply With Quote Quick reply to this message  
Join Date: Oct 2007
Posts: 305
Reputation: stilllearning has a spectacular aura about stilllearning has a spectacular aura about 
Solved Threads: 43
stilllearning stilllearning is offline Offline
Posting Whiz

Re: a few questions about C++ source code

 
0
  #3
Sep 26th, 2008
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.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC