scientific_comp_projects/CODE/parallel_computing/c_learning.md

1.4 KiB

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.