[SPCA] Update code imports

This commit is contained in:
2026-01-22 07:35:37 +01:00
parent f92b002524
commit 5dffd7391c
18 changed files with 28 additions and 30 deletions

View File

@@ -1,7 +1,7 @@
\subsection{Basics}
\texttt{C} uses a very similar syntax as many other programming languages, like \texttt{Java}, \texttt{JavaScript} and many more\dots
to be precise, it is \textit{them} that use the \texttt{C} syntax, not the other way around. So:
\inputcodewithfilename{c}{code-examples/00_c/00_basics/}{00_intro.c}
\inputcodewithfilename{c}{}{code-examples/00_c/00_basics/00_intro.c}
In \texttt{C} we are referring to the implementation of a function as a \bi{(function) definition} (correspondingly, \textit{variable definition}, if the variable is initialized)
and to the definition of the function signature (or variables, without initializing them) as the \bi{(function) declaration} (or, correspondingly, \textit{variable declaration}).
@@ -9,4 +9,4 @@ and to the definition of the function signature (or variables, without initializ
\texttt{C} code is usuallt split into the source files, ending in \texttt{.c} (where the local functions and variables are declared, as well as all function definitions)
and the header files, ending in \texttt{.h}, usually sharing the filename of the source file, where the external declarations are defined.
By convention, no definition of functions are in the \texttt{.h} files, and neither variables, but there is nothing preventing you from putting them there.
\inputcodewithfilename{c}{code-examples/00_c/00_basics/}{01_func.h}
\inputcodewithfilename{c}{}{code-examples/00_c/00_basics/01_func.h}

View File

@@ -9,6 +9,6 @@ And because the labels are (as in Assembly) simply skipped over during execution
We can also use \texttt{continue} and \texttt{break} statements similarly to \texttt{Java}, they do not however accept labels.
(Reminder: \texttt{continue} skips the loop body and goes to the next iteration)
\inputcodewithfilename{c}{code-examples/00_c/00_basics/}{01_func.c}
\inputcodewithfilename{c}{}{code-examples/00_c/00_basics/01_func.c}

View File

@@ -3,7 +3,7 @@
We have already seen a few examples for how \texttt{C} handles declarations.
In concept they are similar (and scoping works the same) to most other \texttt{C}-like programming languages, including \texttt{Java}.
\inputcodewithfilename{c}{code-examples/00_c/00_basics/}{02_declarations.c}
\inputcodewithfilename{c}{}{code-examples/00_c/00_basics/02_declarations.c}
\newpage
A peculiarity of \texttt{C} is that the bit-count is not defined by the language, but rather the hardware it is compiled for.

View File

@@ -5,4 +5,4 @@
Unlike some other programming languages, arrays are \bi{not} dynamic length.
The below snippet includes already some pointer arithmetic tricks. The variable \texttt{data} is a pointer to the first element of the array.
\inputcodewithfilename{c}{code-examples/00_c/00_basics/}{03_arrays.c}
\inputcodewithfilename{c}{}{code-examples/00_c/00_basics/03_arrays.c}

View File

@@ -3,4 +3,4 @@
with length of the array $n + 1$ (where $n$ is the number of characters of the string).
The extra element is the termination character, called the \texttt{null character}, denoted \verb|\0|.
To determine the actual length of the string (as it may be padded), we can use \verb|strnlen(str, maxlen)| from \texttt{string.h}
\inputcodewithfilename{c}{code-examples/00_c/00_basics/}{04_strings.c}
\inputcodewithfilename{c}{}{code-examples/00_c/00_basics/04_strings.c}

View File

@@ -11,7 +11,7 @@ When a procedure returns, the stack frame is deallocated and any necessary clean
Of note is that if you simply declare a pointer using \texttt{type * p;} you will get different memory addresses every time.
The (Linux)-Kernel randomizes the address space to prevent some common exploits.
\inputcodewithfilename{c}{code-examples/00_c/00_basics/}{05_pointers.c}
\inputcodewithfilename{c}{}{code-examples/00_c/00_basics/05_pointers.c}
\newpage
\begin{scriptsize}