Difference between revisions of "Pascal for C users"
From Lazarus wiki
Jump to navigationJump to searchLine 197: | Line 197: | ||
| | | | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| border="1" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px solid; border-collapse: collapse;" | ||
+ | ! C type | ||
+ | ! [[Pascal]] | ||
+ | ! | ||
+ | |- | ||
+ | | struct { } | ||
+ | | [[Record]] [[End]] | ||
+ | | | ||
+ | |- | ||
+ | | union { } | ||
+ | | [[Record]] [[Case]] [[Of]] [[End]] | ||
+ | | [[Case#Variant Record|Variant Record]] | ||
|- | |- | ||
|} | |} |
Revision as of 09:42, 17 August 2008
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 | |
---|---|---|
struct { } | Record End | |
union { } | Record Case Of End | Variant Record |