Difference between revisions of "Pascal for C++ users"

From Lazarus wiki
Jump to navigationJump to search
(New page: Note: Logical operators (AND/OR/XOR etc) are logical or boolean depending on the type of the arguments (boolean or integer). Since Pascal had a separate boolean type from the start, boolea...)
 
(wikitable)
Line 1: Line 1:
 
Note: Logical operators (AND/OR/XOR etc) are logical or boolean depending on the type of the arguments (boolean or integer). Since Pascal had a separate boolean type from the start, boolean operators on integers were not necessary, and are always logical.
 
Note: Logical operators (AND/OR/XOR etc) are logical or boolean depending on the type of the arguments (boolean or integer). Since Pascal had a separate boolean type from the start, boolean operators on integers were not necessary, and are always logical.
  
{|   border="1" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px  solid; border-collapse: collapse;"
+
{| class="wikitable"
!   C++  
+
! C++ !! [[Pascal]] !!
!   [[Pascal]]  
 
!
 
 
|-
 
|-
 
|   {  
 
|   {  
Line 118: Line 116:
  
  
{|   border="1" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px  solid; border-collapse: collapse;"
+
{| class="wikitable"
!   C++ type  
+
! C++ type !! [[Pascal]] [[Data_type|type]] !! Size (bits) !! Range !!
!   [[Pascal]] [[Data_type|type]]  
 
!   Size (bits)  
 
!   Range  
 
!  
 
 
|-
 
|-
 
|   char  
 
|   char  
Line 201: Line 195:
  
  
{|   border="1" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px  solid; border-collapse: collapse;"
+
{| class="wikitable"
!   C++ type  
+
! C++ type !! [[Pascal]]  
!   [[Pascal]]  
 
 
!
 
!
 
|-
 
|-

Revision as of 05:55, 7 May 2012

Note: Logical operators (AND/OR/XOR etc) are logical or boolean depending on the type of the arguments (boolean or integer). Since Pascal had a separate boolean type from the start, boolean operators on integers were not necessary, and are always logical.

C++ Pascal
  {     Begin    
  }     End  
  =     :=   Becomes  
  ==     =   Equal
  /     /   Float Division (Integer: div)  
  %     Mod   Modulo operation
  !     Not   Logical and boolean depending on arguments
  !=     <>   Not equal  
  &&     And  
  ||     Or  
  ^     Xor  
  >>     Shr   bit shift right  
  <<     Shl   bit shift left  
  ++     Inc  
  --     Dec  
  /*     { or (*   Comment start
  */     } or *)   Comment end
  //     //   End of line comment (only one line comment)  
  if()     If Then  
  if() else     If Then Else  
  while     While Do  
  do while     Repeat Until Not   
  do while !     Repeat Until    
  for ++     For To Do  
  for --     For Downto Do    
  switch case break     Case Of End  
  switch case break default     Case Of Else End    


C++ type Pascal type Size (bits) Range
  char     Char     8-bit     ASCII
  signed char     Shortint   8-bit   -128 .. 127  
  unsigned char     Byte   8-bit   0 .. 255  
  char*     PChar   (32-bit)   Pointer to a null-terminated string  
  short int     SmallInt   16-bit   -32768 .. 32767  
  unsigned short int     Word   16-bit   0 .. 65535  
  int     Integer   (16-bit or) 32-bit     -2147483648..2147483647     Generic integer types  
  unsigned int     Cardinal   (16-bit or) 32-bit     0 .. 4294967295     Generic integer types  
  long int     LongInt   32-bit   -2147483648..2147483647    
  unsigned long int     LongWord   32-bit   0 .. 4294967295  
  float     Single   32-bit   1.5E-45 .. 3.4E+38  
  double     Double   64-bit   5.0E-324 .. 1.7E+308  


C++ type Pascal
  class { }     Class End    
  class: { }     Class( ) End    
  template <class T> class { }     Generic = Class<T> End    
  struct { }     Record End    
  struct { }     Object End     If you want methods
  union { }     Record Case Of End     Variant Record