Copyright (c) Hyperion Entertainment and contributors.

Difference between revisions of "AmiWest Lesson 2"

From AmigaOS Documentation Wiki
Jump to navigation Jump to search
Line 59: Line 59:
   
 
== Static versus Dynamic Linking ==
 
== Static versus Dynamic Linking ==
  +
  +
Here is hello world done with static linking:
  +
  +
<syntaxhighlight>
  +
#include <stdio.h>
  +
  +
int main()
  +
{
  +
printf("Hello, world\n");
  +
return 0;
  +
}
  +
</syntaxhighlight>
  +
  +
gcc -mcrt=clib2 -o hello hello.c
   
 
== Libraries and Interfaces ==
 
== Libraries and Interfaces ==

Revision as of 05:07, 11 October 2012

AmiWest Lesson 2: Fundamentals

Basic Types

It is important to under at least the basic types when programming. The following table summarizes the basic types used in AmigaOS as compared to standard C and C++ types:

AmigaOS Types
Type Deprecated Type(s) C C++
uint64 none uint64_t uint64_t
int64 none int64_t int64_t
uint32 ULONG or LONGBITS or CPTR uint32_t uint32_t
int32 LONG int32_t int32_t
uint16 UWORD or WORDBITS or USHORT or UCOUNT or RPTR uint16_t uint16_t
int16 WORD or SHORT or COUNT int16_t int16_t
uint8 UBYTE or BYTEBITS char or unsigned char unsigned char
int8 BYTE signed char signed char
STRPTR none char* char*
CONST STRPTR n/a char* const x char* const x
CONST_STRPTR n/a const char* const char*
CONST CONST_STRPTR n/a const char* const const char* const
APTR none void* void*
CONST APTR none void* const x void* const x
CONST_APTR none const void* const void*
CONST CONST_APTR none const void* const const void* const
float32 FLOAT float float
float64 DOUBLE double double
BOOL none int16 int16
TEXT none char char
NULL none 0L (void*)0L
BPTR none int32_t int32_t
BSTR none int32_t int32_t
ZERO none (BPTR)0 (BPTR)0

Static versus Dynamic Linking

Here is hello world done with static linking:

#include <stdio.h>
 
int main()
{
 printf("Hello, world\n");
 return 0;
}
gcc -mcrt=clib2 -o hello hello.c

Libraries and Interfaces

Shared Objects

Tasks and Processes

Code to display Tasks and Processes.

Synchronization Primitives