scientific_comp_projects/CODE/parallel_computing/c_learning.md

36 lines
1.4 KiB
Markdown

# The goal being to be able to understand C code, rather than writing it effectively.
## C preprocessor
Produces a new file that compiler will process. Command to preprocessor start line with a # symbol as the first non-whitespace character.
\#include : use to pull the contents of one file into the current source file.
For ex to pull the entire content of `multiprocessing.h` :
```
#include "multiprocessing.h"
```
\#define : lets you define a new symbol that gets replaced with a text string .
For ex. `#define SEM_FAILED NULL` replace every instance of `SEM_FAILED` with the literal string `NULL` before the code is sent to the compiler.
\#under : erases any previous preprocessor definition from \#define. You can have \#define effect only a section of the file.
\#if : conditional statements, which allow to include/exclude certain sections of the text based on certain conditions.
There are three basic forms of \#if in CPython source:
1. \#ifdef <macro\> includes the subsequent text-block if the macro is defined.
2. \#ifndef <macro\> includes the text-block if the specified macro is not defined.
3. \#if <macro\> includes the text-block if macro defined and True.
\#pragma : instructions or hint to the compiler. Usually deals with how code is compiled not how it runs.
\#error : displays a message and cause the preprocessor to stop executing.
### Preprocessor directives
### C syntax compared to python.
### Loops, functions and strings.