Difference between revisions of "Pascal for C users"
From Lazarus wiki
Jump to navigationJump to search (internal links) |
|||
Line 161: | Line 161: | ||
|- | |- | ||
| short int | | short int | ||
− | | [[ | + | | [[Smallint]] |
| 16-bit | | 16-bit | ||
| -32768 .. 32767 | | -32768 .. 32767 | ||
Line 191: | Line 191: | ||
|- | |- | ||
| unsigned long int | | unsigned long int | ||
− | | [[ | + | | [[Longword]] |
| 32-bit | | 32-bit | ||
| 0 .. 4294967295 | | 0 .. 4294967295 | ||
Line 231: | Line 231: | ||
| abs | | abs | ||
| Abs | | Abs | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| acos | | acos | ||
| ArcCos | | ArcCos | ||
− | | [[Math]] | + | | [[Math unit|Math]] |
|- | |- | ||
| asin | | asin | ||
| ArcSin | | ArcSin | ||
− | | [[Math]] | + | | [[Math unit|Math]] |
|- | |- | ||
| atan | | atan | ||
| ArcTan | | ArcTan | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| atof | | atof | ||
| StrToFloat | | StrToFloat | ||
− | | [[SysUtils]] | + | | [[SysUtils unit|SysUtils]] |
|- | |- | ||
| atoi | | atoi | ||
| StrToInt | | StrToInt | ||
− | | [[SysUtils]] | + | | [[SysUtils unit|SysUtils]] |
|- | |- | ||
| atol | | atol | ||
| StrToInt | | StrToInt | ||
− | | [[SysUtils]] | + | | [[SysUtils unit|SysUtils]] |
|- | |- | ||
| atoll | | atoll | ||
| StrToInt64 | | StrToInt64 | ||
− | | [[SysUtils]] | + | | [[SysUtils unit|SysUtils]] |
|- | |- | ||
| ceil | | ceil | ||
| Ceil | | Ceil | ||
− | | [[Math]] | + | | [[Math unit|Math]] |
|- | |- | ||
| cos | | cos | ||
| Cos | | Cos | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| exp | | exp | ||
| Exp | | Exp | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| floor | | floor | ||
| Floor | | Floor | ||
− | | [[Math]] | + | | [[Math unit|Math]] |
|- | |- | ||
| pow | | pow | ||
| Power | | Power | ||
− | | [[Math]] | + | | [[Math unit|Math]] |
|- | |- | ||
| round | | round | ||
| Round | | Round | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| sin | | sin | ||
| Sin | | Sin | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| sqrt | | sqrt | ||
| Sqrt | | Sqrt | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| strcpy | | strcpy | ||
| Copy | | Copy | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| strlen | | strlen | ||
| Length | | Length | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
| tan | | tan | ||
| Tan | | Tan | ||
− | | [[Math]] | + | | [[Math unit|Math]] |
|- | |- | ||
| toupper | | toupper | ||
| UpCase | | UpCase | ||
− | | [[System]] | + | | [[System unit|System]] |
|- | |- | ||
|} | |} |
Revision as of 07:10, 20 July 2016
│
Deutsch (de) │
English (en) │
français (fr) │
Overview
This page gives some translations between C(++) and Pascal concepts.
Translation
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 Note: shr is a logical bitshift, not arithmetic. If the left operand is a negative value of a signed type, then the result of an shr operation may not be what you expect. |
<< | Shl | bit shift left |
++ | Inc | |
-- | Dec | |
/* | { or (* | Comment start |
*/ | } or *) | Comment end |
// | // | End of line comment (only one line comment) |
0x | $ | prefix for hex-number e.g. $FFFFFF |
& | @ | address operator |
* | ^ | See Pointer and Pointers |
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 |
C | Pascal | Unit |
---|---|---|
abs | Abs | System |
acos | ArcCos | Math |
asin | ArcSin | Math |
atan | ArcTan | System |
atof | StrToFloat | SysUtils |
atoi | StrToInt | SysUtils |
atol | StrToInt | SysUtils |
atoll | StrToInt64 | SysUtils |
ceil | Ceil | Math |
cos | Cos | System |
exp | Exp | System |
floor | Floor | Math |
pow | Power | Math |
round | Round | System |
sin | Sin | System |
sqrt | Sqrt | System |
strcpy | Copy | System |
strlen | Length | System |
tan | Tan | Math |
toupper | UpCase | System |
C++
C++ type | Pascal | |
---|---|---|
class { } | Class End | |
class: { } | Class( ) End | |
template <class T> class { } | Generic = Class<T> End | |
struct { } | Object End | If you want methods |
See also
- [1] Short tutorial that describes the process of using C and C++ code in FreePascal, including writing of wrapper code
- Creating bindings for C libraries
- Common problems when converting C header files
- Pascal for C++ users
- SWIG