The execution environment in C18 can be primarily divided into two models: the hosted environment and the freestanding environment.
1. Hosted Environment:
- This is the usual environment where C programs run under a full operating system like Windows, Linux, or macOS.
- It provides a rich standard library, including facilities for input-output operations, string handling, mathematical computations, and more.
- Example of execution flow in a hosted environment:
```c
#include
int main() {
printf("Hello, World!\n");
return 0;
}
```
Here, the `main` function serves as the entry point, and it uses standard library functions such as `printf`.
2. Freestanding Environment:
- In this environment, C programs run without the support of an operating system, often on embedded systems or microcontrollers.
- The standard library support is minimal, mostly limited to a subset of essential headers such as ``, ``, and ``.
- A typical freestanding environment setup:
```c
void main(void) {
// Initialize hardware
// Execute core logic
while (1) {
// Main loop
}
}
```
Here, the `main` function does not expect any arguments and can have an infinite loop to keep the program running.