Initial commit

This commit is contained in:
theoleuthardt 2024-01-27 02:07:15 +01:00
commit 826d4c8c9d
81 changed files with 7268 additions and 0 deletions

8
.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

6
.idea/encodings.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/uebung6/files/node.txt" charset="UTF-32" />
</component>
</project>

2
.idea/learningC.iml generated Normal file
View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CMake" type="CPP_MODULE" version="4" />

4
.idea/misc.xml generated Normal file
View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
</project>

8
.idea/modules.xml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/learningC.iml" filepath="$PROJECT_DIR$/.idea/learningC.iml" />
</modules>
</component>
</project>

56
CMakeLists.txt Normal file
View file

@ -0,0 +1,56 @@
cmake_minimum_required(VERSION 3.27)
project(learningC C)
set(CMAKE_C_STANDARD 11)
add_subdirectory(exam/exam_modules)
add_subdirectory(examTemplate/examTemp_modules)
add_subdirectory(examTemplate/examTemp_modules)
add_subdirectory(uebung7/uebung7_modules)
add_subdirectory(uebung7/palindromLIB)
add_executable(E1E2 uebung1und2/main.c)
add_executable(E3 uebung3/main.c)
add_executable(E5T1 uebung5/aufgabe1.c)
add_executable(E5T2 uebung5/aufgabe2.c)
add_executable(E5T3 uebung5/aufgabe3.c)
add_executable(E5T4 uebung5/aufgabe4.c)
add_executable(E5T5 uebung5/aufgabe5.c)
add_executable(E6T1 uebung6/aufgabe1.c)
add_executable(E6T2 uebung6/aufgabe2.c)
add_executable(E6T3 uebung6/aufgabe3.c)
add_executable(E6T4 uebung6/aufgabe4.c)
add_executable(E6T5 uebung6/aufgabe5.c)
add_executable(E7T1 uebung7/aufgabe1.c palindromLIB/palindrom.c)
target_link_libraries(E7T1 m)
add_executable(E7T2 uebung7/aufgabe2.c uebung7_modules/list.c)
target_link_libraries(E7T2 m)
add_executable(E7T3 uebung7/aufgabe3.c uebung7_modules/geometrics.c)
target_link_libraries(E7T3 m)
add_executable(E8T1 uebung8/aufgabe1.c)
add_executable(E8T2 uebung8/aufgabe2.c)
add_executable(E8T3 uebung8/aufgabe3.c)
add_executable(E8T4 uebung8/aufgabe4.c)
add_executable(E8T5 uebung8/aufgabe5.c)
add_executable(E8T6 uebung8/aufgabe6.c)
add_executable(E8T7 uebung8/aufgabe7.c)
add_executable(E8T8 uebung8/aufgabe8.c)
find_package(PkgConfig REQUIRED) # ermöglicht das einfache Einbinden von Libraries
pkg_check_modules(GTK4 REQUIRED gtk4) # sucht das Paket gtk4 und erstellt die benötigten Variablen mit dem Prefix GTK4_ in den folgende Zeilen
include_directories(${GTK4_INCLUDE_DIRS})
link_directories(${GTK4_LIBRARY_DIRS})
add_definitions(${GTK4_CFLAGS_OTHER})
add_executable(E9 main.c)
target_link_libraries(E9 ${GTK4_LIBRARIES})
add_executable(MOCK_EXAM probePruefung/main.c)
add_executable(EXAM_TEMPLATE examTemplate/main.c examTemp_modules/list.c)
target_link_libraries(EXAM_TEMPLATE m)
add_executable(EXAM exam/main.c exam_modules/list.c)
target_link_libraries(EXAM m)

0
README.md Normal file
View file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,636 @@
{
"inputs" :
[
{
"path" : "CMakeLists.txt"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeSystem.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-debug/CMakeFiles/3.27.8/CMakeSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeSystemSpecificInitialize.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Platform/Darwin-Initialize.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerId.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCompilerIdDetection.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/ADSP-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Borland-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Clang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Cray-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/GHS-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/HP-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IAR-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Intel-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/MSVC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/PGI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/PathScale-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/SCO-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/TI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Tasking-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Watcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/XL-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/ADSP-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Borland-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Clang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Cray-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/GHS-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/HP-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IAR-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Intel-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/MSVC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/PGI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/PathScale-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/SCO-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/TI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Tasking-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Watcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/XL-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeFindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-debug/CMakeFiles/3.27.8/CMakeCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeSystemSpecificInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeGenericSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeInitializeConfigs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Platform/Darwin.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Platform/UnixPaths.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/AppleClang-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/Clang.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Platform/Apple-AppleClang-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Platform/Apple-Clang-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Platform/Apple-Clang.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeTestCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerABI.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeParseImplicitIncludeInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeParseLibraryArchitecture.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCCompilerABI.c"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompileFeatures.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/Internal/FeatureTesting.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-debug/CMakeFiles/3.27.8/CMakeCCompiler.cmake"
}
],
"kind" : "cmakeFiles",
"paths" :
{
"build" : "/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug",
"source" : "/Users/theo/Coding/CLionProjects/learningC"
},
"version" :
{
"major" : 1,
"minor" : 0
}
}

View file

@ -0,0 +1,60 @@
{
"configurations" :
[
{
"directories" :
[
{
"build" : ".",
"jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json",
"minimumCMakeVersion" :
{
"string" : "3.27"
},
"projectIndex" : 0,
"source" : ".",
"targetIndexes" :
[
0
]
}
],
"name" : "Debug",
"projects" :
[
{
"directoryIndexes" :
[
0
],
"name" : "learningC",
"targetIndexes" :
[
0
]
}
],
"targets" :
[
{
"directoryIndex" : 0,
"id" : "learningC::@6890427a1f51a3e7e1df",
"jsonFile" : "target-learningC-Debug-e715a0706099c84c5438.json",
"name" : "learningC",
"projectIndex" : 0
}
]
}
],
"kind" : "codemodel",
"paths" :
{
"build" : "/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug",
"source" : "/Users/theo/Coding/CLionProjects/learningC"
},
"version" :
{
"major" : 2,
"minor" : 6
}
}

View file

@ -0,0 +1,14 @@
{
"backtraceGraph" :
{
"commands" : [],
"files" : [],
"nodes" : []
},
"installers" : [],
"paths" :
{
"build" : ".",
"source" : "."
}
}

View file

@ -0,0 +1,108 @@
{
"cmake" :
{
"generator" :
{
"multiConfig" : false,
"name" : "Ninja"
},
"paths" :
{
"cmake" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cmake",
"cpack" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cpack",
"ctest" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/ctest",
"root" : "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27"
},
"version" :
{
"isDirty" : false,
"major" : 3,
"minor" : 27,
"patch" : 8,
"string" : "3.27.8",
"suffix" : ""
}
},
"objects" :
[
{
"jsonFile" : "codemodel-v2-c27605c523f4b9a42d4a.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 6
}
},
{
"jsonFile" : "cache-v2-10aecde726e7fc3983e2.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "cmakeFiles-v1-9097bf2ac77be4f5a4aa.json",
"kind" : "cmakeFiles",
"version" :
{
"major" : 1,
"minor" : 0
}
},
{
"jsonFile" : "toolchains-v1-e0f424cc4383644d699f.json",
"kind" : "toolchains",
"version" :
{
"major" : 1,
"minor" : 0
}
}
],
"reply" :
{
"cache-v2" :
{
"jsonFile" : "cache-v2-10aecde726e7fc3983e2.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
"cmakeFiles-v1" :
{
"jsonFile" : "cmakeFiles-v1-9097bf2ac77be4f5a4aa.json",
"kind" : "cmakeFiles",
"version" :
{
"major" : 1,
"minor" : 0
}
},
"codemodel-v2" :
{
"jsonFile" : "codemodel-v2-c27605c523f4b9a42d4a.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 6
}
},
"toolchains-v1" :
{
"jsonFile" : "toolchains-v1-e0f424cc4383644d699f.json",
"kind" : "toolchains",
"version" :
{
"major" : 1,
"minor" : 0
}
}
}
}

View file

@ -0,0 +1,99 @@
{
"artifacts" :
[
{
"path" : "learningC"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"add_executable"
],
"files" :
[
"CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 6,
"parent" : 0
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : "-g -std=gnu11 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -fcolor-diagnostics"
}
],
"language" : "C",
"languageStandard" :
{
"backtraces" :
[
1
],
"standard" : "11"
},
"sourceIndexes" :
[
0
]
}
],
"id" : "learningC::@6890427a1f51a3e7e1df",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-g",
"role" : "flags"
},
{
"fragment" : "",
"role" : "flags"
}
],
"language" : "C"
},
"name" : "learningC",
"nameOnDisk" : "learningC",
"paths" :
{
"build" : ".",
"source" : "."
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "main.c",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View file

@ -0,0 +1,37 @@
{
"kind" : "toolchains",
"toolchains" :
[
{
"compiler" :
{
"id" : "AppleClang",
"implicit" :
{
"includeDirectories" :
[
"/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include",
"/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include",
"/Library/Developer/CommandLineTools/usr/include"
],
"linkDirectories" : [],
"linkFrameworkDirectories" : [],
"linkLibraries" : []
},
"path" : "/Library/Developer/CommandLineTools/usr/bin/cc",
"version" : "15.0.0.15000100"
},
"language" : "C",
"sourceFileExtensions" :
[
"c",
"m"
]
}
],
"version" :
{
"major" : 1,
"minor" : 0
}
}

View file

@ -0,0 +1,452 @@
# This is the CMakeCache file.
# For build in directory: /Users/theo/Coding/CLionProjects/learningC/cmake-build-debug
# It was generated by CMake: /Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=CMAKE_ADDR2LINE-NOTFOUND
//Path to a program.
CMAKE_AR:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=Debug
//Enable colored diagnostics throughout.
CMAKE_COLOR_DIAGNOSTICS:BOOL=ON
//C compiler
CMAKE_C_COMPILER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/cc
//Flags used by the C compiler during all build types.
CMAKE_C_FLAGS:STRING=
//Flags used by the C compiler during DEBUG builds.
CMAKE_C_FLAGS_DEBUG:STRING=-g
//Flags used by the C compiler during MINSIZEREL builds.
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the C compiler during RELEASE builds.
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the C compiler during RELWITHDEBINFO builds.
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Path to a program.
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
//Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=
//Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/pkgRedirects
//Path to a program.
CMAKE_INSTALL_NAME_TOOL:FILEPATH=/usr/bin/install_name_tool
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ld
//No help, variable specified on the command line.
CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/theo/Applications/CLion.app/Contents/bin/ninja/mac/aarch64/ninja
//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/objdump
//Build architectures for OSX
CMAKE_OSX_ARCHITECTURES:STRING=
//Minimum OS X version to target for deployment (at runtime); newer
// APIs weak linked. Set to empty string for default value.
CMAKE_OSX_DEPLOYMENT_TARGET:STRING=
//The product will be built against the headers and libraries located
// inside the indicated SDK.
CMAKE_OSX_SYSROOT:PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=learningC
//Path to a program.
CMAKE_RANLIB:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/ranlib
//Path to a program.
CMAKE_READELF:FILEPATH=CMAKE_READELF-NOTFOUND
//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the linker during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of static libraries
// during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/strip
//Path to a program.
CMAKE_TAPI:FILEPATH=/Library/Developer/CommandLineTools/usr/bin/tapi
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Arguments to supply to pkg-config
PKG_CONFIG_ARGN:STRING=
//pkg-config executable
PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/local/bin/pkg-config
//Value Computed by CMake
learningC_BINARY_DIR:STATIC=/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug
//Value Computed by CMake
learningC_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
learningC_SOURCE_DIR:STATIC=/Users/theo/Coding/CLionProjects/learningC
//Path to a library.
pkgcfg_lib_GTK4_cairo:FILEPATH=/usr/local/Cellar/cairo/1.18.0/lib/libcairo.dylib
//Path to a library.
pkgcfg_lib_GTK4_cairo-gobject:FILEPATH=/usr/local/Cellar/cairo/1.18.0/lib/libcairo-gobject.dylib
//Path to a library.
pkgcfg_lib_GTK4_gdk_pixbuf-2.0:FILEPATH=/usr/local/Cellar/gdk-pixbuf/2.42.10_1/lib/libgdk_pixbuf-2.0.dylib
//Path to a library.
pkgcfg_lib_GTK4_gio-2.0:FILEPATH=/usr/local/Cellar/glib/2.78.3/lib/libgio-2.0.dylib
//Path to a library.
pkgcfg_lib_GTK4_glib-2.0:FILEPATH=/usr/local/Cellar/glib/2.78.3/lib/libglib-2.0.dylib
//Path to a library.
pkgcfg_lib_GTK4_gobject-2.0:FILEPATH=/usr/local/Cellar/glib/2.78.3/lib/libgobject-2.0.dylib
//Path to a library.
pkgcfg_lib_GTK4_graphene-1.0:FILEPATH=/usr/local/Cellar/graphene/1.10.8/lib/libgraphene-1.0.dylib
//Path to a library.
pkgcfg_lib_GTK4_gtk-4:FILEPATH=/usr/local/Cellar/gtk4/4.12.4/lib/libgtk-4.dylib
//Path to a library.
pkgcfg_lib_GTK4_harfbuzz:FILEPATH=/usr/local/Cellar/harfbuzz/8.3.0/lib/libharfbuzz.dylib
//Path to a library.
pkgcfg_lib_GTK4_intl:FILEPATH=/usr/local/opt/gettext/lib/libintl.dylib
//Path to a library.
pkgcfg_lib_GTK4_pango-1.0:FILEPATH=/usr/local/Cellar/pango/1.50.14/lib/libpango-1.0.dylib
//Path to a library.
pkgcfg_lib_GTK4_pangocairo-1.0:FILEPATH=/usr/local/Cellar/pango/1.50.14/lib/libpangocairo-1.0.dylib
//Value Computed by CMake
uebung7_BINARY_DIR:STATIC=/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/uebung7/palindromLIB
//Value Computed by CMake
uebung7_IS_TOP_LEVEL:STATIC=OFF
//Value Computed by CMake
uebung7_SOURCE_DIR:STATIC=/Users/theo/Coding/CLionProjects/learningC/uebung7/palindromLIB
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_ADDR2LINE
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=27
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=8
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/ctest
//ADVANCED property for variable: CMAKE_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=MACHO
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Ninja
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/Users/theo/Coding/CLionProjects/learningC
//ADVANCED property for variable: CMAKE_INSTALL_NAME_TOOL
CMAKE_INSTALL_NAME_TOOL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=5
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_READELF
CMAKE_READELF-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_TAPI
CMAKE_TAPI-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//Details about finding PkgConfig
FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/usr/local/bin/pkg-config][v0.29.2()]
GTK4_CFLAGS:INTERNAL=-mfpmath=sse;-msse;-msse2;-I/usr/local/Cellar/gtk4/4.12.4/include/gtk-4.0;-I/usr/local/Cellar/pango/1.50.14/include/pango-1.0;-I/usr/local/Cellar/harfbuzz/8.3.0/include/harfbuzz;-I/usr/local/Cellar/pango/1.50.14/include/pango-1.0;-I/usr/local/Cellar/fribidi/1.0.13/include/fribidi;-I/usr/local/Cellar/harfbuzz/8.3.0/include/harfbuzz;-I/usr/local/Cellar/graphite2/1.3.14/include;-I/usr/local/Cellar/gdk-pixbuf/2.42.10_1/include/gdk-pixbuf-2.0;-I/usr/local/Cellar/libtiff/4.6.0/include;-I/usr/local/opt/zstd/include;-I/usr/local/Cellar/xz/5.4.5/include;-I/usr/local/Cellar/jpeg-turbo/3.0.0/include;-I/usr/local/Cellar/cairo/1.18.0/include/cairo;-I/usr/local/Cellar/fontconfig/2.14.2/include;-I/usr/local/opt/freetype/include/freetype2;-I/usr/local/opt/libpng/include/libpng16;-I/usr/local/Cellar/libxext/1.3.5/include;-I/usr/local/Cellar/libxrender/0.9.11/include;-I/usr/local/Cellar/libx11/1.8.7/include;-I/usr/local/Cellar/libxcb/1.16/include;-I/usr/local/Cellar/libxau/1.0.11/include;-I/usr/local/Cellar/libxdmcp/1.1.4/include;-I/usr/local/Cellar/pixman/0.42.2/include/pixman-1;-I/usr/local/Cellar/graphene/1.10.8/include/graphene-1.0;-I/usr/local/Cellar/graphene/1.10.8/lib/graphene-1.0/include;-I/usr/local/Cellar/glib/2.78.3/include;-I/usr/local/Cellar/glib/2.78.3/include/glib-2.0;-I/usr/local/Cellar/glib/2.78.3/lib/glib-2.0/include;-I/usr/local/opt/gettext/include;-I/usr/local/Cellar/pcre2/10.42/include;-I/usr/local/Cellar/xorgproto/2023.2/include;-I/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/ffi
GTK4_CFLAGS_I:INTERNAL=
GTK4_CFLAGS_OTHER:INTERNAL=-mfpmath=sse;-msse;-msse2
GTK4_FOUND:INTERNAL=1
GTK4_INCLUDEDIR:INTERNAL=/usr/local/Cellar/gtk4/4.12.4/include
GTK4_INCLUDE_DIRS:INTERNAL=/usr/local/Cellar/gtk4/4.12.4/include/gtk-4.0;/usr/local/Cellar/pango/1.50.14/include/pango-1.0;/usr/local/Cellar/harfbuzz/8.3.0/include/harfbuzz;/usr/local/Cellar/pango/1.50.14/include/pango-1.0;/usr/local/Cellar/fribidi/1.0.13/include/fribidi;/usr/local/Cellar/harfbuzz/8.3.0/include/harfbuzz;/usr/local/Cellar/graphite2/1.3.14/include;/usr/local/Cellar/gdk-pixbuf/2.42.10_1/include/gdk-pixbuf-2.0;/usr/local/Cellar/libtiff/4.6.0/include;/usr/local/opt/zstd/include;/usr/local/Cellar/xz/5.4.5/include;/usr/local/Cellar/jpeg-turbo/3.0.0/include;/usr/local/Cellar/cairo/1.18.0/include/cairo;/usr/local/Cellar/fontconfig/2.14.2/include;/usr/local/opt/freetype/include/freetype2;/usr/local/opt/libpng/include/libpng16;/usr/local/Cellar/libxext/1.3.5/include;/usr/local/Cellar/libxrender/0.9.11/include;/usr/local/Cellar/libx11/1.8.7/include;/usr/local/Cellar/libxcb/1.16/include;/usr/local/Cellar/libxau/1.0.11/include;/usr/local/Cellar/libxdmcp/1.1.4/include;/usr/local/Cellar/pixman/0.42.2/include/pixman-1;/usr/local/Cellar/graphene/1.10.8/include/graphene-1.0;/usr/local/Cellar/graphene/1.10.8/lib/graphene-1.0/include;/usr/local/Cellar/glib/2.78.3/include;/usr/local/Cellar/glib/2.78.3/include/glib-2.0;/usr/local/Cellar/glib/2.78.3/lib/glib-2.0/include;/usr/local/opt/gettext/include;/usr/local/Cellar/pcre2/10.42/include;/usr/local/Cellar/xorgproto/2023.2/include;/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/ffi
GTK4_LDFLAGS:INTERNAL=-L/usr/local/Cellar/gtk4/4.12.4/lib;-L/usr/local/Cellar/pango/1.50.14/lib;-L/usr/local/Cellar/harfbuzz/8.3.0/lib;-L/usr/local/Cellar/gdk-pixbuf/2.42.10_1/lib;-L/usr/local/Cellar/cairo/1.18.0/lib;-L/usr/local/Cellar/graphene/1.10.8/lib;-L/usr/local/Cellar/glib/2.78.3/lib;-L/usr/local/opt/gettext/lib;-lgtk-4;-lpangocairo-1.0;-lpango-1.0;-lharfbuzz;-lgdk_pixbuf-2.0;-lcairo-gobject;-lcairo;-lgraphene-1.0;-lgio-2.0;-lgobject-2.0;-lglib-2.0;-lintl
GTK4_LDFLAGS_OTHER:INTERNAL=
GTK4_LIBDIR:INTERNAL=/usr/local/Cellar/gtk4/4.12.4/lib
GTK4_LIBRARIES:INTERNAL=gtk-4;pangocairo-1.0;pango-1.0;harfbuzz;gdk_pixbuf-2.0;cairo-gobject;cairo;graphene-1.0;gio-2.0;gobject-2.0;glib-2.0;intl
GTK4_LIBRARY_DIRS:INTERNAL=/usr/local/Cellar/gtk4/4.12.4/lib;/usr/local/Cellar/pango/1.50.14/lib;/usr/local/Cellar/harfbuzz/8.3.0/lib;/usr/local/Cellar/gdk-pixbuf/2.42.10_1/lib;/usr/local/Cellar/cairo/1.18.0/lib;/usr/local/Cellar/graphene/1.10.8/lib;/usr/local/Cellar/glib/2.78.3/lib;/usr/local/opt/gettext/lib
GTK4_LIBS:INTERNAL=
GTK4_LIBS_L:INTERNAL=
GTK4_LIBS_OTHER:INTERNAL=
GTK4_LIBS_PATHS:INTERNAL=
GTK4_MODULE_NAME:INTERNAL=gtk4
GTK4_PREFIX:INTERNAL=/usr/local/Cellar/gtk4/4.12.4
GTK4_STATIC_CFLAGS:INTERNAL=-mfpmath=sse;-msse;-msse2;-I/usr/local/Cellar/gtk4/4.12.4/include/gtk-4.0;-I/usr/local/Cellar/pango/1.50.14/include/pango-1.0;-I/usr/local/Cellar/harfbuzz/8.3.0/include/harfbuzz;-I/usr/local/Cellar/pango/1.50.14/include/pango-1.0;-I/usr/local/Cellar/fribidi/1.0.13/include/fribidi;-I/usr/local/Cellar/harfbuzz/8.3.0/include/harfbuzz;-I/usr/local/Cellar/graphite2/1.3.14/include;-I/usr/local/Cellar/gdk-pixbuf/2.42.10_1/include/gdk-pixbuf-2.0;-I/usr/local/Cellar/libtiff/4.6.0/include;-I/usr/local/opt/zstd/include;-I/usr/local/Cellar/xz/5.4.5/include;-I/usr/local/Cellar/jpeg-turbo/3.0.0/include;-I/usr/local/Cellar/cairo/1.18.0/include/cairo;-I/usr/local/Cellar/fontconfig/2.14.2/include;-I/usr/local/opt/freetype/include/freetype2;-I/usr/local/opt/libpng/include/libpng16;-I/usr/local/Cellar/libxext/1.3.5/include;-I/usr/local/Cellar/libxrender/0.9.11/include;-I/usr/local/Cellar/libx11/1.8.7/include;-I/usr/local/Cellar/libxcb/1.16/include;-I/usr/local/Cellar/libxau/1.0.11/include;-I/usr/local/Cellar/libxdmcp/1.1.4/include;-I/usr/local/Cellar/pixman/0.42.2/include/pixman-1;-I/usr/local/Cellar/graphene/1.10.8/include/graphene-1.0;-I/usr/local/Cellar/graphene/1.10.8/lib/graphene-1.0/include;-I/usr/local/Cellar/glib/2.78.3/include;-I/usr/local/Cellar/glib/2.78.3/include/glib-2.0;-I/usr/local/Cellar/glib/2.78.3/lib/glib-2.0/include;-I/usr/local/opt/gettext/include;-I/usr/local/Cellar/pcre2/10.42/include;-I/usr/local/Cellar/xorgproto/2023.2/include;-I/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/ffi
GTK4_STATIC_CFLAGS_I:INTERNAL=
GTK4_STATIC_CFLAGS_OTHER:INTERNAL=-mfpmath=sse;-msse;-msse2
GTK4_STATIC_INCLUDE_DIRS:INTERNAL=/usr/local/Cellar/gtk4/4.12.4/include/gtk-4.0;/usr/local/Cellar/pango/1.50.14/include/pango-1.0;/usr/local/Cellar/harfbuzz/8.3.0/include/harfbuzz;/usr/local/Cellar/pango/1.50.14/include/pango-1.0;/usr/local/Cellar/fribidi/1.0.13/include/fribidi;/usr/local/Cellar/harfbuzz/8.3.0/include/harfbuzz;/usr/local/Cellar/graphite2/1.3.14/include;/usr/local/Cellar/gdk-pixbuf/2.42.10_1/include/gdk-pixbuf-2.0;/usr/local/Cellar/libtiff/4.6.0/include;/usr/local/opt/zstd/include;/usr/local/Cellar/xz/5.4.5/include;/usr/local/Cellar/jpeg-turbo/3.0.0/include;/usr/local/Cellar/cairo/1.18.0/include/cairo;/usr/local/Cellar/fontconfig/2.14.2/include;/usr/local/opt/freetype/include/freetype2;/usr/local/opt/libpng/include/libpng16;/usr/local/Cellar/libxext/1.3.5/include;/usr/local/Cellar/libxrender/0.9.11/include;/usr/local/Cellar/libx11/1.8.7/include;/usr/local/Cellar/libxcb/1.16/include;/usr/local/Cellar/libxau/1.0.11/include;/usr/local/Cellar/libxdmcp/1.1.4/include;/usr/local/Cellar/pixman/0.42.2/include/pixman-1;/usr/local/Cellar/graphene/1.10.8/include/graphene-1.0;/usr/local/Cellar/graphene/1.10.8/lib/graphene-1.0/include;/usr/local/Cellar/glib/2.78.3/include;/usr/local/Cellar/glib/2.78.3/include/glib-2.0;/usr/local/Cellar/glib/2.78.3/lib/glib-2.0/include;/usr/local/opt/gettext/include;/usr/local/Cellar/pcre2/10.42/include;/usr/local/Cellar/xorgproto/2023.2/include;/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/ffi
GTK4_STATIC_LDFLAGS:INTERNAL=-L/usr/local/Cellar/gtk4/4.12.4/lib;-L/usr/local/Cellar/pango/1.50.14/lib;-L/usr/local/Cellar/harfbuzz/8.3.0/lib;-L/usr/local/Cellar/pango/1.50.14/lib;-L/usr/local/Cellar/fribidi/1.0.13/lib;-L/usr/local/Cellar/harfbuzz/8.3.0/lib;-L/usr/local/Cellar/graphite2/1.3.14/lib;-L/usr/local/Cellar/gdk-pixbuf/2.42.10_1/lib;-L/usr/local/Cellar/libtiff/4.6.0/lib;-L/usr/local/opt/zstd/lib;-L/usr/local/Cellar/xz/5.4.5/lib;-L/usr/local/Cellar/jpeg-turbo/3.0.0/lib;-L/usr/local/Cellar/cairo/1.18.0/lib;-L/usr/local/Cellar/fontconfig/2.14.2/lib;-L/usr/local/opt/freetype/lib;-L/usr/local/opt/libpng/lib;-L/usr/local/Cellar/libxext/1.3.5/lib;-L/usr/local/Cellar/libxrender/0.9.11/lib;-L/usr/local/Cellar/libx11/1.8.7/lib;-L/usr/local/Cellar/libxcb/1.16/lib;-L/usr/local/Cellar/libxau/1.0.11/lib;-L/usr/local/Cellar/libxdmcp/1.1.4/lib;-L/usr/local/Cellar/pixman/0.42.2/lib;-L/usr/local/Cellar/graphene/1.10.8/lib;-L/usr/local/Cellar/glib/2.78.3/lib;-L/usr/local/opt/gettext/lib;-L/usr/local/Cellar/pcre2/10.42/lib;-L/usr/lib;-lgtk-4;-lpangocairo-1.0;-lm;-framework;CoreFoundation;-framework;ApplicationServices;-lpangoft2-1.0;-lm;-framework;CoreFoundation;-framework;ApplicationServices;-lharfbuzz-gobject;-lpango-1.0;-lm;-framework;CoreFoundation;-framework;ApplicationServices;-lfribidi;-lharfbuzz;-lm;-framework;ApplicationServices;-lgraphite2;-lgdk_pixbuf-2.0;-lm;-lintl;-ltiff;-lzstd;-llzma;-ljpeg;-lz;-lzstd;-llzma;-pthread;-lpthread;-ljpeg;-lcairo-gobject;-lm;-ldl;-framework;CoreFoundation;-framework;ApplicationServices;-lcairo;-lm;-ldl;-framework;CoreFoundation;-framework;ApplicationServices;-lfontconfig;-lexpat;-lfreetype;-lbz2;-lpng16;-lz;-lXext;-lXrender;-lX11;-lxcb-render;-lxcb-shm;-lxcb;-lXau;-lXdmcp;-lpixman-1;-lgraphene-1.0;-lm;-lgio-2.0;-lintl;-framework;Foundation;-framework;CoreFoundation;-framework;AppKit;-lresolv;-lgmodule-2.0;-lintl;-lz;-lgobject-2.0;-lintl;-lffi;-lglib-2.0;-lintl;-liconv;-lm;-framework;Foundation;-framework;CoreFoundation;-framework;AppKit;-framework;Carbon;-lpcre2-8;-D_THREAD_SAFE;-pthread
GTK4_STATIC_LDFLAGS_OTHER:INTERNAL=-framework;CoreFoundation;-framework;ApplicationServices;-framework;CoreFoundation;-framework;ApplicationServices;-framework;CoreFoundation;-framework;ApplicationServices;-pthread;-framework;CoreFoundation;-framework;ApplicationServices;-framework;CoreFoundation;-framework;ApplicationServices;-framework;Foundation;-framework;CoreFoundation;-framework;AppKit;-framework;Foundation;-framework;CoreFoundation;-framework;AppKit;-framework;Carbon;-D_THREAD_SAFE;-pthread
GTK4_STATIC_LIBDIR:INTERNAL=
GTK4_STATIC_LIBRARIES:INTERNAL=gtk-4;pangocairo-1.0;m;pangoft2-1.0;m;harfbuzz-gobject;pango-1.0;m;fribidi;harfbuzz;m;graphite2;gdk_pixbuf-2.0;m;intl;tiff;zstd;lzma;jpeg;z;zstd;lzma;pthread;jpeg;cairo-gobject;m;dl;cairo;m;dl;fontconfig;expat;freetype;bz2;png16;z;Xext;Xrender;X11;xcb-render;xcb-shm;xcb;Xau;Xdmcp;pixman-1;graphene-1.0;m;gio-2.0;intl;resolv;gmodule-2.0;intl;z;gobject-2.0;intl;ffi;glib-2.0;intl;iconv;m;pcre2-8
GTK4_STATIC_LIBRARY_DIRS:INTERNAL=/usr/local/Cellar/gtk4/4.12.4/lib;/usr/local/Cellar/pango/1.50.14/lib;/usr/local/Cellar/harfbuzz/8.3.0/lib;/usr/local/Cellar/pango/1.50.14/lib;/usr/local/Cellar/fribidi/1.0.13/lib;/usr/local/Cellar/harfbuzz/8.3.0/lib;/usr/local/Cellar/graphite2/1.3.14/lib;/usr/local/Cellar/gdk-pixbuf/2.42.10_1/lib;/usr/local/Cellar/libtiff/4.6.0/lib;/usr/local/opt/zstd/lib;/usr/local/Cellar/xz/5.4.5/lib;/usr/local/Cellar/jpeg-turbo/3.0.0/lib;/usr/local/Cellar/cairo/1.18.0/lib;/usr/local/Cellar/fontconfig/2.14.2/lib;/usr/local/opt/freetype/lib;/usr/local/opt/libpng/lib;/usr/local/Cellar/libxext/1.3.5/lib;/usr/local/Cellar/libxrender/0.9.11/lib;/usr/local/Cellar/libx11/1.8.7/lib;/usr/local/Cellar/libxcb/1.16/lib;/usr/local/Cellar/libxau/1.0.11/lib;/usr/local/Cellar/libxdmcp/1.1.4/lib;/usr/local/Cellar/pixman/0.42.2/lib;/usr/local/Cellar/graphene/1.10.8/lib;/usr/local/Cellar/glib/2.78.3/lib;/usr/local/opt/gettext/lib;/usr/local/Cellar/pcre2/10.42/lib;/usr/lib
GTK4_STATIC_LIBS:INTERNAL=
GTK4_STATIC_LIBS_L:INTERNAL=
GTK4_STATIC_LIBS_OTHER:INTERNAL=
GTK4_STATIC_LIBS_PATHS:INTERNAL=
GTK4_VERSION:INTERNAL=4.12.4
GTK4_gtk4_INCLUDEDIR:INTERNAL=
GTK4_gtk4_LIBDIR:INTERNAL=
GTK4_gtk4_PREFIX:INTERNAL=
GTK4_gtk4_VERSION:INTERNAL=
//ADVANCED property for variable: PKG_CONFIG_ARGN
PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1
//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
__pkg_config_arguments_GTK4:INTERNAL=REQUIRED;gtk4
__pkg_config_checked_GTK4:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_cairo
pkgcfg_lib_GTK4_cairo-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_cairo-gobject
pkgcfg_lib_GTK4_cairo-gobject-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_gdk_pixbuf-2.0
pkgcfg_lib_GTK4_gdk_pixbuf-2.0-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_gio-2.0
pkgcfg_lib_GTK4_gio-2.0-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_glib-2.0
pkgcfg_lib_GTK4_glib-2.0-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_gobject-2.0
pkgcfg_lib_GTK4_gobject-2.0-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_graphene-1.0
pkgcfg_lib_GTK4_graphene-1.0-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_gtk-4
pkgcfg_lib_GTK4_gtk-4-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_harfbuzz
pkgcfg_lib_GTK4_harfbuzz-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_intl
pkgcfg_lib_GTK4_intl-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_pango-1.0
pkgcfg_lib_GTK4_pango-1.0-ADVANCED:INTERNAL=1
//ADVANCED property for variable: pkgcfg_lib_GTK4_pangocairo-1.0
pkgcfg_lib_GTK4_pangocairo-1.0-ADVANCED:INTERNAL=1
prefix_result:INTERNAL=/usr/local/Cellar/gtk4/4.12.4/lib

View file

@ -0,0 +1,74 @@
set(CMAKE_C_COMPILER "/Library/Developer/CommandLineTools/usr/bin/cc")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "AppleClang")
set(CMAKE_C_COMPILER_VERSION "15.0.0.15000100")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
set(CMAKE_C_PLATFORM_ID "Darwin")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "/Library/Developer/CommandLineTools/usr/bin/ar")
set(CMAKE_C_COMPILER_AR "")
set(CMAKE_RANLIB "/Library/Developer/CommandLineTools/usr/bin/ranlib")
set(CMAKE_C_COMPILER_RANLIB "")
set(CMAKE_LINKER "/Library/Developer/CommandLineTools/usr/bin/ld")
set(CMAKE_MT "")
set(CMAKE_TAPI "/Library/Developer/CommandLineTools/usr/bin/tapi")
set(CMAKE_COMPILER_IS_GNUCC )
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_C_COMPILER_ENV_VAR "CC")
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
set(CMAKE_C_LINKER_DEPFILE_SUPPORTED FALSE)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "")
set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include")
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

View file

@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Darwin-23.3.0")
set(CMAKE_HOST_SYSTEM_NAME "Darwin")
set(CMAKE_HOST_SYSTEM_VERSION "23.3.0")
set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64")
set(CMAKE_SYSTEM "Darwin-23.3.0")
set(CMAKE_SYSTEM_NAME "Darwin")
set(CMAKE_SYSTEM_VERSION "23.3.0")
set(CMAKE_SYSTEM_PROCESSOR "arm64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

View file

@ -0,0 +1,866 @@
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__CLASSIC_C__)
/* cv-qualifiers did not exist in K&R C */
# define const
# define volatile
#endif
#if !defined(__has_include)
/* If the compiler does not have __has_include, pretend the answer is
always no. */
# define __has_include(x) 0
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
except that a few beta releases use the old format with V=2021. */
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
/* The third version component from --version is an update index,
but no macro is provided for it. */
# define COMPILER_VERSION_PATCH DEC(0)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
# define COMPILER_ID "IntelLLVM"
#if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
#endif
#if defined(__GNUC__)
# define SIMULATE_ID "GNU"
#endif
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
* VVVV is no smaller than the current year when a version is released.
*/
#if __INTEL_LLVM_COMPILER < 1000000L
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
#else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
#endif
#if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
#endif
#if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
#elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
#endif
#if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
#endif
#if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
#endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_C)
# define COMPILER_ID "SunPro"
# if __SUNPRO_C >= 0x5100
/* __SUNPRO_C = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# endif
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
/* __HP_cc = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
/* __DECC_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__open_xl__) && defined(__clang__)
# define COMPILER_ID "IBMClang"
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
# define COMPILER_ID "XL"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__NVCOMPILER)
# define COMPILER_ID "NVHPC"
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
# if defined(__NVCOMPILER_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
# endif
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__CLANG_FUJITSU)
# define COMPILER_ID "FujitsuClang"
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__FUJITSU)
# define COMPILER_ID "Fujitsu"
# if defined(__FCC_version__)
# define COMPILER_VERSION __FCC_version__
# elif defined(__FCC_major__)
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# endif
# if defined(__fcc_version)
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
# elif defined(__FCC_VERSION)
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
# endif
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__TASKING__)
# define COMPILER_ID "Tasking"
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
#elif defined(__TINYC__)
# define COMPILER_ID "TinyCC"
#elif defined(__BCC__)
# define COMPILER_ID "Bruce"
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
# define COMPILER_ID "LCC"
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
# if defined(__LCC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
# endif
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
# define SIMULATE_ID "GNU"
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
# endif
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(_ADI_COMPILER)
# define COMPILER_ID "ADSP"
#if defined(__VERSIONNUM__)
/* __VERSIONNUM__ = 0xVVRRPPTT */
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
# define COMPILER_ID "SDCC"
# if defined(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
# else
/* SDCC = VRP */
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
# endif
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__MSYS__)
# define PLATFORM_ID "MSYS"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# elif defined(__VXWORKS__)
# define PLATFORM_ID "VxWorks"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
# elif defined(_ADI_COMPILER)
# define PLATFORM_ID "ADSP"
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_ARM64EC)
# define ARCHITECTURE_ID "ARM64EC"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__ICCV850__)
# define ARCHITECTURE_ID "V850"
# elif defined(__ICC8051__)
# define ARCHITECTURE_ID "8051"
# elif defined(__ICCSTM8__)
# define ARCHITECTURE_ID "STM8"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__TI_COMPILER_VERSION__)
# if defined(__TI_ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__MSP430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__TMS320C28XX__)
# define ARCHITECTURE_ID "TMS320C28x"
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
# define ARCHITECTURE_ID "TMS320C6x"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
# elif defined(__ADSPSHARC__)
# define ARCHITECTURE_ID "SHARC"
# elif defined(__ADSPBLACKFIN__)
# define ARCHITECTURE_ID "Blackfin"
#elif defined(__TASKING__)
# if defined(__CTC__) || defined(__CPTC__)
# define ARCHITECTURE_ID "TriCore"
# elif defined(__CMCS__)
# define ARCHITECTURE_ID "MCS"
# elif defined(__CARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__CARC__)
# define ARCHITECTURE_ID "ARC"
# elif defined(__C51__)
# define ARCHITECTURE_ID "8051"
# elif defined(__CPCP__)
# define ARCHITECTURE_ID "PCP"
# else
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number. */
#ifdef COMPILER_VERSION
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
/* Construct a string literal encoding the version number components. */
#elif defined(COMPILER_VERSION_MAJOR)
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#elif defined(COMPILER_VERSION_INTERNAL_STR)
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#if !defined(__STDC__) && !defined(__clang__)
# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
# define C_VERSION "90"
# else
# define C_VERSION
# endif
#elif __STDC_VERSION__ > 201710L
# define C_VERSION "23"
#elif __STDC_VERSION__ >= 201710L
# define C_VERSION "17"
#elif __STDC_VERSION__ >= 201000L
# define C_VERSION "11"
#elif __STDC_VERSION__ >= 199901L
# define C_VERSION "99"
#else
# define C_VERSION "90"
#endif
const char* info_language_standard_default =
"INFO" ":" "standard_default[" C_VERSION "]";
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
defined(__TI_COMPILER_VERSION__)) && \
!defined(__STRICT_ANSI__)
"ON"
#else
"OFF"
#endif
"]";
/*--------------------------------------------------------------------------*/
#ifdef ID_VOID_MAIN
void main() {}
#else
# if defined(__CLASSIC_C__)
int main(argc, argv) int argc; char *argv[];
# else
int main(int argc, char* argv[])
# endif
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#ifdef COMPILER_VERSION_INTERNAL
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
require += info_cray[argc];
#endif
require += info_language_standard_default[argc];
require += info_language_extensions_default[argc];
(void)argv;
return require;
}
#endif

View file

@ -0,0 +1,194 @@
---
events:
-
kind: "message-v1"
backtrace:
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineSystem.cmake:211 (message)"
- "CMakeLists.txt:2 (project)"
message: |
The system is: Darwin - 23.3.0 - arm64
-
kind: "message-v1"
backtrace:
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)"
- "CMakeLists.txt:2 (project)"
message: |
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: /Library/Developer/CommandLineTools/usr/bin/cc
Build flags:
Id flags:
The output was:
1
ld: library 'System' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
-
kind: "message-v1"
backtrace:
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)"
- "CMakeLists.txt:2 (project)"
message: |
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /Library/Developer/CommandLineTools/usr/bin/cc
Build flags:
Id flags: -c
The output was:
0
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o"
The C compiler identification is AppleClang, found in:
/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/3.27.8/CompilerIdC/CMakeCCompilerId.o
-
kind: "try_compile-v1"
backtrace:
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)"
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
checks:
- "Detecting C compiler ABI info"
directories:
source: "/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/CMakeScratch/TryCompile-7YBEN1"
binary: "/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/CMakeScratch/TryCompile-7YBEN1"
cmakeVariables:
CMAKE_C_FLAGS: ""
CMAKE_C_FLAGS_DEBUG: "-g"
CMAKE_EXE_LINKER_FLAGS: ""
CMAKE_OSX_ARCHITECTURES: ""
CMAKE_OSX_DEPLOYMENT_TARGET: ""
CMAKE_OSX_SYSROOT: "/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk"
buildResult:
variable: "CMAKE_C_ABI_COMPILED"
cached: true
stdout: |
Change Dir: '/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/CMakeScratch/TryCompile-7YBEN1'
Run Build Command(s): /Users/theo/Applications/CLion.app/Contents/bin/ninja/mac/aarch64/ninja -v cmTC_b2905
[1/2] /Library/Developer/CommandLineTools/usr/bin/cc -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -fcolor-diagnostics -v -Wl,-v -MD -MT CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -c /Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCCompilerABI.c
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
clang: warning: -Wl,-v: 'linker' input unused [-Wunused-command-line-argument]
"/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple arm64-apple-macosx14.0.0 -Wundef-prefix=TARGET_OS_ -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mframe-pointer=non-leaf -fno-strict-return -ffp-contract=on -fno-rounding-math -funwind-tables=1 -fobjc-msgsend-selector-stubs -target-sdk-version=14.2 -fvisibility-inlines-hidden-static-local-var -target-cpu apple-m1 -target-feature +v8.5a -target-feature +crc -target-feature +lse -target-feature +rdm -target-feature +crypto -target-feature +dotprod -target-feature +fp-armv8 -target-feature +neon -target-feature +fp16fml -target-feature +ras -target-feature +rcpc -target-feature +zcm -target-feature +zcz -target-feature +fullfp16 -target-feature +sm4 -target-feature +sha3 -target-feature +sha2 -target-feature +aes -target-abi darwinpcs -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=lldb -target-linker-version 1022.1 -v -fcoverage-compilation-dir=/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/CMakeScratch/TryCompile-7YBEN1 -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/15.0.0 -dependency-file CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o.d -skip-unused-modulemap-deps -MT CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -sys-header-deps -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -Wno-elaborated-enum-base -Wno-reserved-identifier -Wno-gnu-folding-constant -fdebug-compilation-dir=/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/CMakeScratch/TryCompile-7YBEN1 -ferror-limit 19 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fmax-type-align=16 -fcommon -fcolor-diagnostics -clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation -fno-odr-hash-protocols -clang-vendor-feature=+enableAggressiveVLAFolding -clang-vendor-feature=+revert09abecef7bbf -clang-vendor-feature=+thisNoAlignAttr -clang-vendor-feature=+thisNoNullAttr -mllvm -disable-aligned-alloc-awareness=1 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -x c /Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCCompilerABI.c
clang -cc1 version 15.0.0 (clang-1500.1.0.2.5) default target arm64-apple-darwin23.3.0
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/local/include"
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include
/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include
/Library/Developer/CommandLineTools/usr/include
/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/System/Library/Frameworks (framework directory)
End of search list.
[2/2] : && /Library/Developer/CommandLineTools/usr/bin/cc -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -o cmTC_b2905 && :
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
"/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch arm64 -platform_version macos 14.0.0 14.2 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -o cmTC_b2905 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a
@(#)PROGRAM:ld PROJECT:dyld-1022.1
BUILD 13:21:42 Nov 10 2023
configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h
will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
TAPI support using: Apple TAPI version 15.0.0 (tapi-1500.0.12.8)
Library search paths:
Framework search paths:
exitCode: 0
-
kind: "message-v1"
backtrace:
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerABI.cmake:127 (message)"
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
message: |
Parsed C implicit include dir info: rv=done
found start of include info
found start of implicit include info
add: [/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include]
add: [/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include]
add: [/Library/Developer/CommandLineTools/usr/include]
end of search list found
collapse include dir [/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include] ==> [/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include]
collapse include dir [/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include]
collapse include dir [/Library/Developer/CommandLineTools/usr/include] ==> [/Library/Developer/CommandLineTools/usr/include]
implicit include dirs: [/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include;/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include]
-
kind: "message-v1"
backtrace:
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeDetermineCompilerABI.cmake:152 (message)"
- "/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
message: |
Parsed C implicit link information:
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
ignore line: [Change Dir: '/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/CMakeScratch/TryCompile-7YBEN1']
ignore line: []
ignore line: [Run Build Command(s): /Users/theo/Applications/CLion.app/Contents/bin/ninja/mac/aarch64/ninja -v cmTC_b2905]
ignore line: [[1/2] /Library/Developer/CommandLineTools/usr/bin/cc -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -fcolor-diagnostics -v -Wl -v -MD -MT CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -c /Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCCompilerABI.c]
ignore line: [Apple clang version 15.0.0 (clang-1500.1.0.2.5)]
ignore line: [Target: arm64-apple-darwin23.3.0]
ignore line: [Thread model: posix]
ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin]
ignore line: [clang: warning: -Wl -v: 'linker' input unused [-Wunused-command-line-argument]]
ignore line: [ "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple arm64-apple-macosx14.0.0 -Wundef-prefix=TARGET_OS_ -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mframe-pointer=non-leaf -fno-strict-return -ffp-contract=on -fno-rounding-math -funwind-tables=1 -fobjc-msgsend-selector-stubs -target-sdk-version=14.2 -fvisibility-inlines-hidden-static-local-var -target-cpu apple-m1 -target-feature +v8.5a -target-feature +crc -target-feature +lse -target-feature +rdm -target-feature +crypto -target-feature +dotprod -target-feature +fp-armv8 -target-feature +neon -target-feature +fp16fml -target-feature +ras -target-feature +rcpc -target-feature +zcm -target-feature +zcz -target-feature +fullfp16 -target-feature +sm4 -target-feature +sha3 -target-feature +sha2 -target-feature +aes -target-abi darwinpcs -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=lldb -target-linker-version 1022.1 -v -fcoverage-compilation-dir=/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/CMakeScratch/TryCompile-7YBEN1 -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/15.0.0 -dependency-file CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o.d -skip-unused-modulemap-deps -MT CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -sys-header-deps -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -Wno-elaborated-enum-base -Wno-reserved-identifier -Wno-gnu-folding-constant -fdebug-compilation-dir=/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/CMakeScratch/TryCompile-7YBEN1 -ferror-limit 19 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fmax-type-align=16 -fcommon -fcolor-diagnostics -clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation -fno-odr-hash-protocols -clang-vendor-feature=+enableAggressiveVLAFolding -clang-vendor-feature=+revert09abecef7bbf -clang-vendor-feature=+thisNoAlignAttr -clang-vendor-feature=+thisNoNullAttr -mllvm -disable-aligned-alloc-awareness=1 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -x c /Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/share/cmake-3.27/Modules/CMakeCCompilerABI.c]
ignore line: [clang -cc1 version 15.0.0 (clang-1500.1.0.2.5) default target arm64-apple-darwin23.3.0]
ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/local/include"]
ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/Library/Frameworks"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ /Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/include]
ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include]
ignore line: [ /Library/Developer/CommandLineTools/usr/include]
ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/System/Library/Frameworks (framework directory)]
ignore line: [End of search list.]
ignore line: [[2/2] : && /Library/Developer/CommandLineTools/usr/bin/cc -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -Wl -search_paths_first -Wl -headerpad_max_install_names -v -Wl -v CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -o cmTC_b2905 && :]
ignore line: [Apple clang version 15.0.0 (clang-1500.1.0.2.5)]
ignore line: [Target: arm64-apple-darwin23.3.0]
ignore line: [Thread model: posix]
ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin]
link line: [ "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch arm64 -platform_version macos 14.0.0 14.2 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk -o cmTC_b2905 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a]
arg [/Library/Developer/CommandLineTools/usr/bin/ld] ==> ignore
arg [-demangle] ==> ignore
arg [-lto_library] ==> ignore, skip following value
arg [/Library/Developer/CommandLineTools/usr/lib/libLTO.dylib] ==> skip value of -lto_library
arg [-dynamic] ==> ignore
arg [-arch] ==> ignore
arg [arm64] ==> ignore
arg [-platform_version] ==> ignore
arg [macos] ==> ignore
arg [14.0.0] ==> ignore
arg [14.2] ==> ignore
arg [-syslibroot] ==> ignore
arg [/Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk] ==> ignore
arg [-o] ==> ignore
arg [cmTC_b2905] ==> ignore
arg [-search_paths_first] ==> ignore
arg [-headerpad_max_install_names] ==> ignore
arg [-v] ==> ignore
arg [CMakeFiles/cmTC_b2905.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lSystem] ==> lib [System]
arg [/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a] ==> lib [/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a]
remove lib [System]
remove lib [/Library/Developer/CommandLineTools/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a]
implicit libs: []
implicit objs: []
implicit dirs: []
implicit fwks: []
...

View file

@ -0,0 +1,3 @@
/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/learningC.dir
/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/edit_cache.dir
/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/CMakeFiles/rebuild_cache.dir

View file

@ -0,0 +1,44 @@
/Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/Users/theo/Applications/CLion.app/Contents/bin/ninja/mac/aarch64/ninja -G Ninja -S /Users/theo/Coding/CLionProjects/learningC -B /Users/theo/Coding/CLionProjects/learningC/cmake-build-debug
CMake Error at CMakeLists.txt:6 (add_subdirectory):
The source directory
/Users/theo/Coding/CLionProjects/learningC/exam/exam_modules
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:7 (add_subdirectory):
The source directory
/Users/theo/Coding/CLionProjects/learningC/examTemplate/examTemp_modules
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:8 (add_subdirectory):
The binary directory
/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/examTemplate/examTemp_modules
is already used to build a source directory. It cannot be used to build
source directory
/Users/theo/Coding/CLionProjects/learningC/examTemplate/examTemp_modules
Specify a unique binary directory name.
CMake Error at CMakeLists.txt:9 (add_subdirectory):
The source directory
/Users/theo/Coding/CLionProjects/learningC/uebung7/uebung7_modules
does not contain a CMakeLists.txt file.
CMake Error at uebung7/palindromLIB/CMakeLists.txt:7 (add_subdirectory):
add_subdirectory given source "palindromLIB" which is not an existing
directory.
-- Configuring incomplete, errors occurred!

View file

@ -0,0 +1,3 @@
ToolSet: 1.0 (local)Options:
Options:-DCMAKE_MAKE_PROGRAM=/Users/theo/Applications/CLion.app/Contents/bin/ninja/mac/aarch64/ninja

View file

@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

View file

@ -0,0 +1,64 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Ninja" Generator, CMake Version 3.27
# This file contains all the rules used to get the outputs files
# built from the input files.
# It is included in the main 'build.ninja'.
# =============================================================================
# Project: learningC
# Configurations: Debug
# =============================================================================
# =============================================================================
#############################################
# Rule for compiling C files.
rule C_COMPILER__learningC_unscanned_Debug
depfile = $DEP_FILE
deps = gcc
command = ${LAUNCHER}${CODE_CHECK}/Library/Developer/CommandLineTools/usr/bin/cc $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
description = Building C object $out
#############################################
# Rule for linking C executable.
rule C_EXECUTABLE_LINKER__learningC_Debug
command = $PRE_LINK && /Library/Developer/CommandLineTools/usr/bin/cc $FLAGS -Wl,-search_paths_first -Wl,-headerpad_max_install_names $LINK_FLAGS $in -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
description = Linking C executable $TARGET_FILE
restat = $RESTAT
#############################################
# Rule for running custom commands.
rule CUSTOM_COMMAND
command = $COMMAND
description = $DESC
#############################################
# Rule for re-running cmake.
rule RERUN_CMAKE
command = /Users/theo/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cmake --regenerate-during-build -S/Users/theo/Coding/CLionProjects/learningC -B/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug
description = Re-running CMake...
generator = 1
#############################################
# Rule for cleaning all built files.
rule CLEAN
command = /Users/theo/Applications/CLion.app/Contents/bin/ninja/mac/aarch64/ninja $FILE_ARG -t clean $TARGETS
description = Cleaning all built files...
#############################################
# Rule for printing all primary targets available.
rule HELP
command = /Users/theo/Applications/CLion.app/Contents/bin/ninja/mac/aarch64/ninja -t targets
description = All primary targets available:

View file

@ -0,0 +1,3 @@
Start testing: Jan 27 02:06 CET
----------------------------------------------------------
End testing: Jan 27 02:06 CET

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,49 @@
# Install script for directory: /Users/theo/Coding/CLionProjects/learningC
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
# Set default install directory permissions.
if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/Library/Developer/CommandLineTools/usr/bin/objdump")
endif()
if(CMAKE_INSTALL_COMPONENT)
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
file(WRITE "/Users/theo/Coding/CLionProjects/learningC/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")

117
exam/exam_modules/list.c Normal file
View file

@ -0,0 +1,117 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "list.h"
struct gameData *top = NULL;
int isEmpty(){
return (top == NULL);
}
int size(){
if (isEmpty())
return 0;
struct gameData *next = top->next;
int size = 1;
for (; next != NULL; next = next->next) {
size++;
}
return size;
}
void addGame(char choice1[10], char choice2[10], int winner){
struct gameData *temp = (struct gameData *) malloc(sizeof(struct gameData));
strcpy(temp->choice1, choice1);
strcpy(temp->choice2, choice2);
temp->winner = winner;
if(top == NULL){
temp->next = NULL;
top = temp;
return;
}
temp->next = top;
top = temp;
}
void *getGameData(int index){
if (top == NULL)
return NULL;
struct gameData *temp = top;
for (int i = 0; i <= index; i++) {
if (temp == NULL){
printf("Element ist nicht enthalten!");
return NULL;
} else if(i == index){
return temp;
} else{
temp = temp->next;
}
}
return NULL;
}
int countGames() {
int count = 0;
for (int i = 0; i < size(); ++i) {
struct gameData *temp = getGameData(i);
count++;
}
return count;
}
void printGameData() {
printf("Ausgabe der Spieleergebnisse:\n");
printf("\n");
for (int i = 0; i < size(); ++i) {
struct gameData *temp = getGameData(i);
printf("Spiel %d:\n", i+1);
printf("Auswahl Spieler 1: %s\n", temp->choice1);
printf("Auswahl Spieler 2: %s\n", temp->choice2);
printf("Gewinner des Spiels: Spieler %d\n", temp->winner);
printf("\n");
}
}
void statistics() {
double points1 = 0.0;
double avgPoints1;
double points2 = 0.0;
double avgPoints2;
double gameNum = (double)countGames();
printf("Ausgabe der Spielstatistik:\n");
printf("\n");
// Zählung der Punkte
for (int i = 0; i < size(); ++i) {
struct gameData *temp = getGameData(i);
if(temp->winner == 0) {
points1+=1.0;
points2+=1.0;
} else if(temp->winner == 1) {
points1+=2.0;
} else if(temp->winner == 2) {
points2+=2.0;
}
}
// Berechnung der Punktedurchschnitte
avgPoints1 = points1 / gameNum;
avgPoints2 = points2 / gameNum;
// Ausgabe
printf("Punkte von Spieler 1: %f\n", points1);
printf("Punktedurchschnitt von Spieler 1: %f\n", avgPoints1);
printf("Punkte von Spieler 2: %f\n", points2);
printf("Punktedurchschnitt von Spieler 2: %f\n", avgPoints2);
}

19
exam/exam_modules/list.h Normal file
View file

@ -0,0 +1,19 @@
#ifndef EXAMTEMPLATE_LIST_H
#define EXAMTEMPLATE_LIST_H
struct gameData{
char choice1[10];
char choice2[10];
int winner; // Spielerzahl als Ergebnis (1 oder 2, 0 = unentschieden)
struct gameData *next;
};
void addGame(char choice1[10], char choice2[10], int winner);
int size();
void *getGameData(int index);
int countGames();
void printGameData();
void statistics();
#endif //EXAMTEMPLATE_LIST_H

181
exam/main.c Normal file
View file

@ -0,0 +1,181 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "modules/list.h"
void gameMenu() {
int iteration = 1;
int option;
char choice1[10];
char choice2[10];
int winner = 3; // Spielerzahl als Ergebnis (1 oder 2, 0 = unentschieden)
printf("Willkommen zu Schere-Stein-Papier! Wähle eine Option von 1 bis 4 zum Ausführen.\n");
printf("(1): Spiel starten\n");
printf("(2): Ausgabe der Anzahl und Details der bisher gespielten Partien\n");
printf("(3): Ausgabe einer aktuellen Statistik (Punktesystem)\n");
printf("(4): Beenden\n");
printf("Auswahl: ");
scanf("%d", &option);
printf("\n");
switch (option) {
case 1:
// Spielstart mit Auswahlmöglichkeiten
printf("Die Auswahlmöglichkeiten sind Schere, Stein oder Papier!\n");
printf("Auswahl von Spieler 1:");
scanf("%s", choice1);
//printf("%s\n", choice1);
printf("Auswahl von Spieler 2:");
scanf("%s", choice2);
//printf("%s\n", choice2);
/*
// StringCompare-Werte testen, kommen sehr weirde Werte raus -> Anpassung der Abfrage
printf("%d\n", strcmp("Stein", choice1));
printf("%d\n", strcmp("Schere", choice1));
printf("%d\n", strcmp("Papier", choice1));
printf("%d\n", strcmp("Stein", choice2));
printf("%d\n", strcmp("Schere", choice2));
printf("%d\n", strcmp("Papier", choice2));
printf("%d\n", strcmp(choice1, choice2));
*/
//Spielentscheidung
if(strcmp("Schere", choice1) == 0 && strcmp("Papier", choice2) == 0) {
winner = 1;
} else if(strcmp("Papier", choice1) == 0 && strcmp("Stein", choice2) == 0) {
winner = 1;
} else if(strcmp("Stein", choice1) == 0 && strcmp("Schere", choice2) == 0) {
winner = 1;
} else if(strcmp("Schere", choice2) == 0 && strcmp("Papier", choice1) == 0) {
winner = 2;
} else if(strcmp("Papier", choice2) == 0 && strcmp("Stein", choice1) == 0) {
winner = 2;
} else if(strcmp("Stein", choice2) == 0 && strcmp("Schere", choice1) == 0) {
winner = 2;
} else if(strcmp(choice1, choice2) == 0) {
winner = 0;
}
// Ergebnisausgabe
if(winner == 0) {
printf("\nDas Spiel ging unentschieden aus!\n");
} else if(winner == 1) {
printf("\nSpieler 1 hat gewonnen!\n");
} else if(winner == 2) {
printf("\nSpieler 2 hat gewonnen!\n");
} else {
printf("\nKein Spielergebnis ist bisher vorhanden!\n");
}
//Daten speichern
addGame(choice1, choice2, winner);
iteration++;
break;
case 2:
printf("\nAnzahl der gespielten Partien: %d\n", countGames());
printGameData();
iteration++;
break;
case 3:
statistics();
iteration++;
break;
case 4:
break;
default:
printf("Bitte gib eine Zahl zwischen 1 und 4 ein!");
break;
}
while(iteration > 1) {
printf("\nWeitere Option ausführen? \n");
printf("(1): Spiel starten\n");
printf("(2): Ausgabe der Anzahl und Details der bisher gespielten Partien\n");
printf("(3): Ausgabe einer aktuellen Statistik (Punktesystem)\n");
printf("(4): Beenden\n");
printf("Auswahl: ");
scanf("%d", &option);
printf("\n");
switch (option) {
case 1:
// Spielstart mit Auswahlmöglichkeiten
printf("Die Auswahlmöglichkeiten sind Schere, Stein oder Papier!\n");
printf("Auswahl von Spieler 1:");
scanf("%s", choice1);
//printf("%s\n", choice1);
printf("Auswahl von Spieler 2:");
scanf("%s", choice2);
//printf("%s\n", choice2);
/*
// StringCompare-Werte testen, kommen sehr weirde Werte raus -> Anpassung der Abfrage
printf("%d\n", strcmp("Stein", choice1));
printf("%d\n", strcmp("Schere", choice1));
printf("%d\n", strcmp("Papier", choice1));
printf("%d\n", strcmp("Stein", choice2));
printf("%d\n", strcmp("Schere", choice2));
printf("%d\n", strcmp("Papier", choice2));
printf("%d\n", strcmp(choice1, choice2));
*/
//Spielentscheidung
if(strcmp("Schere", choice1) == 0 && strcmp("Papier", choice2) == 0) {
winner = 1;
} else if(strcmp("Papier", choice1) == 0 && strcmp("Stein", choice2) == 0) {
winner = 1;
} else if(strcmp("Stein", choice1) == 0 && strcmp("Schere", choice2) == 0) {
winner = 1;
} else if(strcmp("Schere", choice2) == 0 && strcmp("Papier", choice1) == 0) {
winner = 2;
} else if(strcmp("Papier", choice2) == 0 && strcmp("Stein", choice1) == 0) {
winner = 2;
} else if(strcmp("Stein", choice2) == 0 && strcmp("Schere", choice1) == 0) {
winner = 2;
} else if(strcmp(choice1, choice2) == 0) {
winner = 0;
}
// Ergebnisausgabe
if(winner == 0) {
printf("\nDas Spiel ging unentschieden aus!\n");
} else if(winner == 1) {
printf("\nSpieler 1 hat gewonnen!\n");
} else if(winner == 2) {
printf("\nSpieler 2 hat gewonnen!\n");
} else {
printf("\nKein Spielergebnis ist bisher vorhanden!\n");
}
//Daten speichern
addGame(choice1, choice2, winner);
iteration++;
break;
case 2:
printf("\nAnzahl der gespielten Partien: %d\n", countGames());
printGameData();
iteration++;
break;
case 3:
statistics();
iteration++;
break;
case 4:
return;
default:
iteration++;
printf("Bitte gib eine Zahl zwischen 1 und 4 ein!");
}
}
}
int main() {
gameMenu();
return 0;
}

View file

@ -0,0 +1,97 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "list.h"
struct list *top = NULL;
int isEmpty(){
return (top == NULL);
}
void Add(void *data){
struct list *temp = (struct list *) malloc(sizeof(struct list));
temp->data = data;
if(top == NULL){
temp->ptr = NULL;
top = temp;
return;
}
temp->ptr = top;
top = temp;
}
void *Get(int index){
if (top == NULL)
return NULL;
struct list *temp = top;
for (int i = 0; i <= index; i++) {
if (temp == NULL){
printf("Element ist nicht enthalten!");
return NULL;
} else if(i == index){
return temp->data;
} else{
temp = temp->ptr;
}
}
return NULL;
}
int Size(){
if (isEmpty())
return 0;
struct list *next = top->ptr;
int size = 1;
for (; next != NULL; next = next->ptr) {
size++;
}
return size;
}
int Contains(void *item){
if (top == NULL) {
return -1;
}
struct list *temp = top;
for (int i = 0; i < Size(); i++) {
if (temp == NULL){
printf("Element ist nicht enthalten!");
return -1;
} else if(item == temp->data){
return i;
} else{
temp = temp->ptr;
}
}
return -1;
}
void Remove(int index){
if(isEmpty())
return;
struct list *temp = top->ptr;
struct list *next = top;
if(index == 0){
free(top);
top = temp;
return;
}
for(int i = 1; i <= index; i++){
if (temp == NULL)
return;
else if (i == index){
next->ptr = temp->ptr;
free(temp);
return;
} else
next = temp;
temp = temp->ptr;
}
}

View file

@ -0,0 +1,16 @@
#ifndef EXAMTEMPLATE_LIST_H
#define EXAMTEMPLATE_LIST_H
struct list{
void *data;
struct list *ptr;
};
void Add(void *data);
void *Get(int index);
int Size();
int Contains(void *item);
void Remove(int index);
#endif //EXAMTEMPLATE_LIST_H

View file

@ -0,0 +1,49 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "stack.h"
struct Stack *top = NULL;
int isEmpty(){
return (top == NULL);
}
void Push(int item){
struct Stack *temp = (struct Stack *) malloc(sizeof(struct Stack));
temp->ptr = top;
temp->data = item;
top = temp;
}
int Pop(){
if (top == NULL){
printf("Stack ist leer!\n");
return -1;
}
struct Stack *temp = top->ptr;
int popped = top->data;
free(top);
top = temp;
return popped;
}
int Top(){
if(isEmpty()) {
printf("Stack ist leer!\n");
return -1;
}
return top->data;
}
int Size(){
if(isEmpty())
return 0;
struct Stack *next = top->ptr;
int size = 1;
for (; next != NULL; next = next->ptr) {
size++;
}
return size;
}

View file

@ -0,0 +1,15 @@
#ifndef EXAMTEMPLATE_STACK_H
#define EXAMTEMPLATE_STACK_H
struct Stack{
int data;
struct Stack *ptr;
};
int isEmpty();
void Push(int item);
int Pop();
int Top();
int Size();
#endif //EXAMTEMPLATE_STACK_H

130
examTemplate/main.c Normal file
View file

@ -0,0 +1,130 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "modules/list.h"
void menu() {
int iteration = 1;
int option;
printf("Willkommen im X! Wähle eine Option 1 bis X zum Ausführen.\n");
printf("(1): Option 1\n");
printf("(2): Option 2\n");
printf("(3): Option 3\n");
printf("(4): Option 4\n");
printf("(5): Option 5\n");
printf("(6): Beenden\n");
printf("Auswahl: ");
scanf("%d", &option);
printf("\n");
switch (option) {
case 1:
// Case 1
printf("\n");
iteration++;
break;
case 2:
// Case 2
iteration++;
break;
case 3:
// Case 3
iteration++;
break;
case 4:
// Case 4
iteration++;
break;
case 5:
// Case 5
iteration++;
break;
case 6:
break;
default:
printf("Bitte gib eine Zahl zwischen 1 und X ein!");
break;
}
while(iteration > 1) {
printf("Weitere Option ausführen? \n");
printf("(1): Option 1\n");
printf("(2): Option 2\n");
printf("(3): Option 3\n");
printf("(4): Option 4\n");
printf("(5): Option 5\n");
printf("(6): Beenden\n");
printf("Auswahl: ");
scanf("%d", &option);
printf("\n");
switch (option) {
case 1:
// Case 1
printf("\n");
iteration++;
break;
case 2:
// Case 2
iteration++;
break;
case 3:
// Case 3
iteration++;
break;
case 4:
// Case 4
iteration++;
break;
case 5:
// Case 5
iteration++;
break;
case 6:
return;
default:
iteration++;
printf("Bitte gib eine Zahl zwischen 1 und X ein!");
}
}
}
int main() {
// Befüllung mit verschiedenen Daten
int number1 = 255;
int number2 = rand() % 500;
int number3 = rand() % 500;
int number4 = rand() % 500;
int number5 = rand() % 500;
Add(&number1);
Add(&number2);
Add(&number3);
Add(&number4);
Add(&number5);
// Ausgabe der Liste
printf("%s%d\n", "Item 0: ", *(int *) Get(0));
printf("%s%d\n", "Item 1: ", *(int *) Get(1));
printf("%s%d\n", "Item 2: ", *(int *) Get(2));
printf("%s%d\n", "Item 3: ", *(int *) Get(3));
printf("%s%d\n", "Item 4: ", *(int *) Get(4));
// Contains Überprüfung
if(Contains((void *) 255) != -1)
printf("%d", "Die Zahl 255 ist am Index: ", *(int *) Contains((void *) 255));
// Size von list
printf("Anzahl der Elemente in der Liste: ");
printf("%d\n", Size());
// Removetest
Remove(0);
Remove(3);
printf("%s%d\n", "Item 0: ", *(int *) Get(0));
printf("%s%d\n", "Item 1: ", *(int *) Get(1));
printf("%s%d\n", "Item 2: ", *(int *) Get(2));
return 0;
}

324
probePruefung/main.c Normal file
View file

@ -0,0 +1,324 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Erstellung der Datenstruktur
struct student {
char firstN[25];
char surN[25];
double math;
double german;
double english;
struct student *next;
};
struct student *top = NULL;
// Funktionen für die Daten<3struktur
int isEmpty() {
return (top == NULL);
}
int size() {
if (isEmpty())
return 0;
struct student *next = top->next;
int size = 1;
for (; next != NULL; next = next->next) {
size++;
}
return size;
}
// Aufgabe 3: Hinzufügen eines Schüler
void addStudent(char firstN[25], char surN[25]) {
struct student *temp = (struct student *) malloc(sizeof(struct student));
strcpy(temp->firstN, firstN);
strcpy(temp->surN, surN);
if (isEmpty()) {
temp->next = NULL;
top = temp;
return;
}
temp->next = top;
top = temp;
}
void *getStudentByName(char firstN[25], char surN[25]) { //??? Don't do this!! random party? 🎉
struct student *temp = top;
for (int i = 0; i <= size(); i++) {
if (isEmpty()) {
printf("Schüler ist nicht im Klassenbuch enthalten!");
return NULL;
} else if (strcmp(firstN, temp->firstN) == 0 && strcmp(surN, temp->surN) == 0) {
return temp;
} else {
temp = temp->next;
}
}
return NULL;
}
void *getStudentByIndex(int Index) {
struct student *temp = top;
for (int i = 0; i <= Index; i++) {
if (isEmpty()) {
printf("Schüler ist nicht im Klassenbuch enthalten!"); //aber häää?
return NULL;
} else if (i == Index) {
return temp;
} else {
temp = temp->next;
}
}
return NULL;
}
void printClassbook() {
printf("Klassenbuch: \n");
for (int i = 0; i < size(); i++) {
struct student *student = getStudentByIndex(i);
if(student == NULL){
printf("Klassenbuch ist aktuell leer!");
}
printf("%s, ", student->firstN);
printf("%s\n", student->surN);
}
printf("\n");
}
// Aufgabe 4: Bearbeitung von Alexanders Noten </3
void refreshOneMark(char firstN[25], char surN[25], int option, double mark) {
struct student *temp = getStudentByName(firstN, surN);
if (isEmpty()) {
return;
}
switch (option) {
case 1:
temp->math = mark;
break;
case 2:
temp->german = mark;
break;
case 3:
temp->english = mark;
break;
default:
printf("Bitte gib eine Zahl zwischen 1 und 3 ein!");
}
}
void refreshAllMarks(char firstN[25], char surN[25], double math, double german, double english) {
struct student *temp = getStudentByName(firstN, surN);
temp->math = math;
temp->german = german;
temp->english = english;
}
//Aufgabe 5: Notendurchschnitt berechnen
double classAverageGrade() {
double sumOfGrades = 0.0;
int countIterations = 0;
for (int i = 0; i < size(); i++) {
struct student *temp = getStudentByIndex(i);
sumOfGrades += temp->math;
countIterations++;
sumOfGrades += temp->german;
countIterations++;
sumOfGrades += temp->english;
countIterations++;
}
return sumOfGrades / countIterations;
}
void classbookMenu() {
int iteration = 1;
char firstN[25];
char surN[25];
int option;
int optionS;
double mark;
double math;
double german;
double english;
printf("Willkommen im Klassenbuch! Wähle eine Option 1 bis 5 zum Ausführen.\n");
printf("(1): Hinzufügen eines Schülers\n");
printf("(2): Aktualisierung einer Note eines Schülers\n");
printf("(3): Aktualisierung einer Note aller Schüler\n");
printf("(4): Ausgabe des Notendurchschnitts aller Fächer der Klasse\n");
printf("(5): Ausgabe des Klassenbuchs\n");
printf("(6): Beenden\n");
printf("Auswahl: ");
scanf("%d", &option);
printf("\n");
switch (option) {
case 1:
printf("%s\n", "Bitte gib den Vornamen des Schülers ein: ");
scanf("%24s", firstN);
printf("%s\n", "Bitte gib den Nachnamen des Schülers ein: ");
scanf("%24s", surN);
addStudent(firstN, surN);
printf("------- Schüler hinzugefügt! -------\n");
printf("\n");
iteration++;
break;
case 2:
printf("\nBitte gib den Vornamen des Schülers ein: ");
scanf("%24s", &firstN);
printf("Bitte gib den Nachnamen des Schülers ein: ");
scanf("%24s", &surN);
printf("Welche Note soll geändert werden?\n");
printf("(1):Mathe\n");
printf("(2):Deutsch\n");
printf("(3):Englisch\n");
printf("Auswahl:");
scanf("%d", &optionS);
printf("Bitte gibt die Note ein (Form: 1.0): ");
scanf("%f", &mark);
printf("\n");
refreshOneMark(firstN, surN, optionS, mark);
printf("Note aktualisiert!");
iteration++;
break;
case 3:
printf("\nBitte gib den Vornamen des Schülers ein: ");
scanf("%24s", &firstN);
printf("Bitte gib den Nachnamen des Schülers ein: ");
scanf("%24s", &surN);
printf("Bitte gibt die Note für Mathe ein (Form: 1.0): ");
scanf("%d", &math);
printf("Bitte gibt die Note für Deutsch ein (Form: 1.0): ");
scanf("%d", &german);
printf("Bitte gibt die Note für Englisch ein (Form: 1.0): ");
scanf("%d", &english);
printf("\n");
refreshAllMarks(firstN, surN, math, german, english);
printf("Noten aktualisiert!");
iteration++;
break;
case 4:
case 5:
printf("\n");
printClassbook();
iteration++;
break;
case 6:
break;
default:
printf("Bitte gib eine Zahl zwischen 1 und 5 ein!");
break;
}
while(iteration > 1){
printf("Weitere Option ausführen? \n");
printf("(1): Hinzufügen eines Schülers\n");
printf("(2): Aktualisierung einer Note eines Schülers\n");
printf("(3): Aktualisierung einer Note aller Schüler\n");
printf("(4): Ausgabe des Notendurchschnitts aller Fächer der Klasse\n");
printf("(5): Ausgabe des Klassenbuchs\n");
printf("(6): Beenden\n");
printf("Auswahl: ");
scanf("%d", &option);
printf("\n");
switch (option) {
case 1:
printf("Bitte gib den Vornamen des Schülers ein: ");
scanf("%24s", &firstN);
printf("Bitte gib den Nachnamen des Schülers ein: ");
scanf("%24s", &surN);
addStudent(firstN, surN);
printf("------- Schüler hinzugefügt! -------\n");
printf("\n");
iteration++;
break;
case 2:
printf("\nBitte gib den Vornamen des Schülers ein: ");
scanf("%24s", &firstN);
printf("Bitte gib den Nachnamen des Schülers ein: ");
scanf("%24s", &surN);
printf("Welche Note soll geändert werden?\n");
printf("(1):Mathe\n");
printf("(2):Deutsch\n");
printf("(3):Englisch\n");
printf("Auswahl:");
scanf("%d", &optionS);
printf("Bitte gibt die Note ein (Form: 1.0): ");
scanf("%f", &mark);
if(mark < 0.9 || mark > 6.0){
printf("Keine gültige Note eingegeben!");
break;
}
printf("\n");
refreshOneMark(firstN, surN, optionS, mark);
printf("Note aktualisiert!");
iteration++;
break;
case 3:
printf("\nBitte gib den Vornamen des Schülers ein: ");
scanf("%24s", &firstN);
printf("Bitte gib den Nachnamen des Schülers ein: ");
scanf("%24s", &surN);
printf("Bitte gibt die Note für Mathe ein (Form: 1.0): ");
scanf("%d", &math);
printf("Bitte gibt die Note für Deutsch ein (Form: 1.0): ");
scanf("%d", &german);
printf("Bitte gibt die Note für Englisch ein (Form: 1.0): ");
scanf("%d", &english);
printf("\n");
refreshAllMarks(firstN, surN, math, german, english);
printf("Noten aktualisiert!");
iteration++;
break;
case 4:
case 5:
printClassbook();
iteration++;
break;
case 6:
return;
default:
iteration++;
printf("Bitte gib eine Zahl zwischen 1 und 5 ein!");
}
}
}
int main() {
classbookMenu();
//stop alex!!
return 0;
}
/* :::ASCII SPAM:::
Alex:
^~^ ,
('Y') )
/ \/
(\|||/)
Frog
o
_`O'_
Duck
>o)
(_>
Whale
.
":"
___:____ |"\/"|
,' `. \ /
| O \___/ |
~^~^~^~^~^~^~^~^~^~^~^~^~
*/

283
uebung1und2/main.c Normal file
View file

@ -0,0 +1,283 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
#include <stdbool.h>
#include <string.h>
int main() {
aufgabe1(NULL);
//aufgabe2(NULL);
//aufgabe3(NULL);
//aufgabe4(NULL);
//aufgabe5(NULL);
//aufgabe6(NULL);
//aufgabe7(NULL);
//aufgabe8(NULL);
}
int aufgabe1() {
// Aufgabe 1: Quadratzahlen bis 20
// Schleife 1: for
for(int i = 1; i <= 20; i++){
printf("Die Quadratzahl von ");
printf("%d", i);
printf(" ist ");
printf("%d\n", i*i);
}
//Schleife 2: while
int j = 1;
while(j <= 20){
printf("Die Quadratzahl von ");
printf("%d", j);
printf(" ist ");
printf("%d\n", j*j);
j++;
}
//Schleife 3: Do-While
int k = 0;
do {
k++;
printf("Die Quadratzahl von ");
printf("%d", k);
printf(" ist ");
printf("%d\n", k*k);
} while (k <= 19);
return 0;
}
int aufgabe2() {
//Aufgabe 2: Ratespiel
srand(time(NULL));
int input;
int num = rand() % 100;
int tries = 0;
bool erraten;
// printf("%d\n", num); // nur zu Testzwecken
while (erraten == false){
printf("Versuche die magische Zahl zu erraten: ");
scanf("%d", &input);
if(input == num) {
printf("Zahl erraten\n");
tries++;
printf("Rateversuche insgesamt: ");
printf("%d", tries);
erraten = true;
} else {
if(input < num) {
printf("Gesuchte Zahl ist höher!\n");
tries++;
} else {
printf("Gesuchte Zahl ist niedriger!\n");
tries ++;
}
}
}
return 0;
}
int aufgabe3() {
// Aufgabe 3: Monatsnamen
int inputM;
printf("Monatszahl eingeben für Monatsnamen: ");
scanf("%d", &inputM);
switch (inputM) {
case 1:
printf("Januar");
break;
case 2:
printf("Februar");
break;
case 3:
printf("März");
break;
case 4:
printf("April");
break;
case 5:
printf("Mai");
break;
case 6:
printf("Juni");
break;
case 7:
printf("Juli");
break;
case 8:
printf("August");
break;
case 9:
printf("September");
break;
case 10:
printf("Oktober");
break;
case 11:
printf("November");
break;
case 12:
printf("Dezember");
break;
default :
printf("Bitte gib eine Zahl zwischen 1 und 12 an");
}
return 0;
}
int aufgabe4() {
int inputYear;
printf("Welches Jahr soll überprüft werden?: ");
scanf("%d", &inputYear);
if (!(inputYear % 4)) {
if (!(inputYear % 100)){
if (!(inputYear % 400)) {
printf("Ist ein Schaltjahr!");
} else {
printf("Ist kein Schaltjahr");
}
} else {
printf("Ist ein Schaltjahr!");
}
} else {
printf("Ist kein Schaltjahr!");
}
}
int aufgabe5() {
char inputChar;
printf("Buchstabe eingeben: ");
scanf("%c", &inputChar);
if(isalpha(inputChar)) {
if (inputChar == 'a' || inputChar == 'e' || inputChar == 'i' || inputChar == 'o' || inputChar == 'u'){
printf("Ist ein Vokal!");
} else if(inputChar == 'A' || inputChar == 'E' || inputChar == 'I' || inputChar == 'O' || inputChar == 'U'){
printf("Ist ein Vokal!");
} else {
printf("Ist ein Konsonant!");
}
} else {
printf("Kein Buchstabe");
}
return 0;
}
int aufgabe6() {
int x;
int y;
printf("X-Koordinate eingeben: ");
if (scanf("%d", &x) == 1) {
printf("Y-Koordinate eingeben: ");
if (scanf("%d", &y) == 1) {
if (x == 0 && y == 0) {
printf("Der Punkt liegt auf dem Ursprung!");
} else if (x == 0 && y != 0) {
printf("Der Punkt liegt auf der y-Achse!");
} else if (x != 0 && y == 0) {
printf("Der Punkt liegt auf der x-Achse!");
} else if (x > 0 && y > 0) {
printf("Der Punkt liegt im ersten Quadranten");
} else if (x < 0 && y > 0) {
printf("Der Punkt liegt im zweiten Quadranten");
} else if (x < 0 && y < 0) {
printf("Der Punkt liegt im dritten Quadranten");
} else if (x > 0 && y < 0) {
printf("Der Punkt liegt im vierten Quadranten");
}
} else {
printf("Das sind aber keine Koordinaten!");
}
} else {
printf("Das sind aber keine Koordinaten!");
}
return 0;
}
int aufgabe7() {
char inputString[100];
char array[100];
printf("String eingeben: ");
scanf("%99s", &inputString);
strcpy(array, inputString);
int l = 0;
int h = strlen(array) - 1;
while (h > l) {
if (array[l++] != array[h--]) {
printf("%s ist kein Palindrom\n", array);
return 0;
}
}
printf("%s ist ein Palindrom\n", array);
return 0;
}
void printSquare(int size) {
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("* ");
}
printf("\n");
}
}
void printTriangle(int size) {
for (int i = 1; i <= size; i++) {
for (int j = 1; j <= i; j++) {
printf("* ");
}
printf("\n");
}
}
void printCircle(int size) {
int radius = size / 2;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
int x = i - radius;
int y = j - radius;
if (x * x + y * y <= radius * radius) {
printf("* ");
} else {
printf(" ");
}
}
printf("\n");
}
}
int aufgabe8() {
int size;
char shape;
printf("Geometrische Form eingeben! (q für Quadrat, d für Dreieck, k für Kreis): ");
scanf(" %c", &shape);
printf("Größe eingeben: ");
scanf("%d", &size);
if (shape == 'q') {
printSquare(size);
} else if (shape == 'd') {
printTriangle(size);
} else if (shape == 'k') {
printCircle(size);
} else {
printf("Ungültiger Forminput!\n");
}
return 0;
}

201
uebung3/main.c Normal file
View file

@ -0,0 +1,201 @@
#include <stdio.h>
#include <limits.h>
#include <stdbool.h>
#include <math.h>
#include <string.h>
int pi(){
const int pi = (int) 3.1415926535;
const float Pi = 3.1415926535f;
const double pI = 3.1415926535;
const long double pII = 3.1415926535l;
const char ppi [] = "3.1415926535";
printf("%d\n", pi);
printf("%f\n", Pi);
printf("%f\n", pI);
printf("%s\n", ppi);
printf("%Lf\n", pII);
return 0;
}
int limits(){
printf("%d", SHRT_MAX);
for (short i = 32600; i < 32800; i++) {
printf("%d\n", i);
}
// Beim Überlauf fängt i wieder beim jeweils anderen Extrem an z.B.
// im negativen Bereich
return 0;
}
int geradeUngerade(){
int input = 0;
scanf("%d", &input);
if (input % 2 == 0){
printf("Deine Zahl ist gerade!");
} else {
printf("Deine Zahl ist ungerade!");
}
return 0;
}
bool primzahl(){
int n = 0;
printf("Zahl eingeben: ");
scanf("%d", &n);
if(n <= 1){
printf("Keine Primzahl!");
return false;
}
for(int i = 2; i * i <= n; i++){
if ( n % i == 0) {
printf("Keine Primzahl!");
return false;
}
}
printf("Eine Primzahl!");
return true;
}
struct Orte {
double breitengrad;
double laengengrad;
} ort1, ort2;
double abstand(){
//Abstandsberechnung
printf("Breitengrad für Ort 1 eingeben: ");
scanf("%lf", &ort1.breitengrad);
printf("Längengrad für Ort 1 eingeben: ");
scanf("%lf", &ort1.laengengrad);
printf("Breitengrad für Ort 2 eingeben: ");
scanf("%lf", &ort2.breitengrad);
printf("Längengrad für Ort 2 eingeben: ");
scanf("%lf", &ort2.laengengrad);
double breite1 = ort1.breitengrad * M_PI / 180.0;
double laenge1 = ort1.laengengrad * M_PI / 180.0;
double breite2 = ort2.breitengrad * M_PI / 180.0;
double laenge2 = ort2.laengengrad * M_PI / 180.0;
double gesamtlaenge = laenge2 - laenge1;
double gesamtbreite = breite2 - breite1;
double a = pow(sin(gesamtbreite / 2), 2) + cos(breite1) * cos(breite2) * pow(sin(gesamtlaenge / 2), 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
double radius = 6371;
double abstand = radius * c;
printf("Distanz: ");
printf("%lf", abstand);
printf("%s\n", "km");
//Auswahl des Verkehrsmittels
char input2;
double fahrzeit = 0; // in h
double Aspeed = 100; // km/h
double Lspeed = 5; // km/h
double Fspeed = 800; // km/h
printf("Auswahlmöglichkeiten: A für Auto, L für Laufen, F für Flugzeug: ");
scanf("%s", &input2);
switch (input2)
{
case 'A':
fahrzeit = (double)abstand / Aspeed;
break;
case 'L':
fahrzeit = abstand / Lspeed;
break;
case 'F':
fahrzeit = abstand / Fspeed;
break;
default:
printf("Keine gültige Eingabe!");
}
printf("Fahrzeit: ");
printf("%lf", fahrzeit);
printf("h");
return 0;
}
int produktTabelle(){
int zeilen = 12;
int spalten = 12;
for (int i = 1; i <= zeilen; i++) {
for (int j = 1; j <= spalten; j++) {
printf("%4d", i * j);
}
printf("\n");
}
return 0;
}
char Benutzer [5][2][20];
int anmeldung(){
printf("Registrierung als Benutzer1: \n");
printf("Benutzername festlegen: ");
scanf("%19s", &Benutzer[0][0]);
printf("Passwort festlegen: ");
scanf("%19s", &Benutzer[0][1]);
char benutzername_inp [20];
char passwort_inp [20];
printf("Anmeldung als Benutzer1: \n");
printf("Benutzername eingeben: ");
scanf("%s", &benutzername_inp);
int userID = 0;
int zeilen = 5;
for (int i = 0; i < zeilen; ++i) {
if(strcmp(&Benutzer[i][0],benutzername_inp) == 0){
userID = i;
i = 10;
} else if(i == zeilen-1) {
printf("Benutzer nicht gefunden!");
userID = 6;
}
}
if (userID != 6) {
int anmeldeversuche = 3;
while (anmeldeversuche > 0) {
printf("Passwort eingeben: ");
scanf("%s", &passwort_inp);
if (0 != strcmp(&Benutzer[userID][1], passwort_inp)) {
printf("Benutzereingabe falsch\n");
anmeldeversuche--;
} else {
printf("Sie sind angemeldet!");
break;
}
}
if(anmeldeversuche == 0) printf("Zu viele Anmeldeversuche!");
}
return 0;
}
int main() {
// pi();
// limits();
// geradeUngerade();
// primzahl();
// abstand();
// produktTabelle();
anmeldung();
return 0;
}

18
uebung5/aufgabe1.c Normal file
View file

@ -0,0 +1,18 @@
#include <stdio.h>
int main(){
int i = 10;
int *j = &i;
char a = 'a';
char *b = &a;
double d = 9.23334;
double *e = &d;
printf("%p\n", j);
printf("%d\n", *j);
printf("%p\n", b);
printf("%c\n", *b);
printf("%p\n", e);
printf("%f\n", *e);
return 0;
}

53
uebung5/aufgabe2.c Normal file
View file

@ -0,0 +1,53 @@
#include <stdio.h>
#include <time.h>
#include <limits.h>
struct LargeDataStructure {
int bigINT;
long bigLONG;
float bigFLOAT;
long double bigLongDOUBLE;
unsigned long long bigUnsLONG;
};
void DatastructureProcessByValue(struct LargeDataStructure daten){
long double oneStep = daten.bigLongDOUBLE;
}
void DatastructureProcessByPointer(struct LargeDataStructure *pdaten){
long double oneStep = pdaten->bigLongDOUBLE;
}
int main(){
struct LargeDataStructure BIG;
clock_t start, end;
// Befüllung von BIG
BIG.bigINT = INT_MAX;
BIG.bigLONG = LONG_MAX;
BIG.bigFLOAT = 213.2131313342534545;
BIG.bigLongDOUBLE = LONG_MAX;
BIG.bigUnsLONG = ULLONG_MAX;
// 10000-Mal einer Prozedur eine große Datenstruktur übergeben als Wert
start = clock();
for (int i = 0; i < 10000; i++) {
DatastructureProcessByValue(BIG);
}
end = clock();
printf("Zeit für die Verarbeitung als regulärer Parameter: %f Sekunden\n", ((double)(end - start)) / CLOCKS_PER_SEC);
// 10000-Mal einer Prozedur eine große Datenstruktur übergeben als Pointer
start = clock();
for (int i = 0; i < 10000; i++) {
DatastructureProcessByPointer(&BIG);
}
end = clock();
printf("Zeit für die Verarbeitung als Pointer: %f Sekunden\n", ((double)(end - start)) / CLOCKS_PER_SEC);
// Fazit: byValueTime=0.00095sec und byPointerTime=0.000056sec → Verarbeitung geht schneller mit Pointern!
return 0;
}

76
uebung5/aufgabe3.c Normal file
View file

@ -0,0 +1,76 @@
#include <stdio.h>
#include <stdlib.h>
struct Stack{
int data;
struct Stack *ptr;
};
struct Stack *top = NULL;
int isEmpty(){
return (top == NULL);
}
void Push(int item){
struct Stack *temp = (struct Stack *) malloc(sizeof(struct Stack));
temp->ptr = top;
temp->data = item;
top = temp;
}
int Pop(){
if (top == NULL){
printf("Stack ist leer!\n");
return -1;
}
struct Stack *temp = top->ptr;
int popped = top->data;
free(top);
top = temp;
return popped;
}
int Top(){
if(isEmpty()) {
printf("Stack ist leer!\n");
return -1;
}
return top->data;
}
int Size(){
if(isEmpty())
return 0;
struct Stack *next = top->ptr;
int size = 1;
for (; next != NULL; next = next->ptr) {
size++;
}
return size;
}
int main(){
// Hinzufügen von Beispieldaten
Push(1);
Push(2);
Push(3);
// Anzeige des obersten Elements und der Größe vom Stack
printf("Top-Element: %d\n", Top());
printf("Stack-Größe: %d\n", Size());
// Entfernung eines Elements
int popped = Pop();
if (popped != -1) {
printf("Entferntes Element: %d\n", popped);
}
// Anzeige des obersten Elements und der Größe vom Stack nach der Entfernung
printf("Top-Element nach Pop: %d\n", Top());
printf("Stack-Größe nach Pop: %d\n", Size());
return 0;
}

111
uebung5/aufgabe4.c Normal file
View file

@ -0,0 +1,111 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct list{
int data;
struct list *ptr;
};
struct list *top = NULL;
int isEmpty(){
return (top == NULL);
}
void Add(int item){
struct list *temp = (struct list *) malloc(sizeof(struct list));
temp->ptr = top;
temp->data = item;
top = temp;
if(item >= top->data){
temp->ptr = top;
top = temp;
return;
}
}
int Get(int index){
if (isEmpty())
return 0;
struct list *temp = top;
for (int i = 0; i < index; i++) {
if (temp == NULL){
printf("Element ist nicht enthalten!");
return -1;
} else if(i == index){
return temp->data;
} else{
temp = temp->ptr;
}
}
return -1;
}
void Remove(int index){
if(isEmpty())
return;
struct list *temp = top->ptr;
struct list *next = top;
if(index == 0){
free(top);
top = temp;
return;
}
for(int i = 1; i <= index; i++){
if (temp == NULL)
return;
else if (i == index){
next->ptr = temp->ptr;
free(temp);
return;
} else
next = temp;
temp = temp->ptr;
}
}
int Size(){
if (isEmpty())
return 0;
struct list *next = top->ptr;
int size = 1;
for (; next != NULL; next = next->ptr) {
size++;
}
return size;
}
void printList(){
printf("Liste: [");
for (int i = 0; i <= Size(); i++) {
printf("%d", Get(i));
printf(", ");
}
printf("]\n");
}
int main(){
// Hinzufügen von 1000 zufälligen Werten
for (int i = 0; i < 1000; i++) {
Add(rand() % 10000);
}
// Größe der Liste
printf("\nGröße von List: ");
printf("%d\n", Size());
// Ausgeben der Liste
printList();
// Ausgabe eines Elements
printf("\nElement an der Stelle 100: ");
printf("%d\n", Get(100));
return 0;
}

140
uebung5/aufgabe5.c Normal file
View file

@ -0,0 +1,140 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct list{
void *data;
struct list *ptr;
};
struct list *top = NULL;
int isEmpty(){
return (top == NULL);
}
void Add(void *data){
struct list *temp = (struct list *) malloc(sizeof(struct list));
temp->data = data;
if(top == NULL){
temp->ptr = NULL;
top = temp;
return;
}
temp->ptr = top;
top = temp;
}
void *Get(int index){
if (top == NULL)
return NULL;
struct list *temp = top;
for (int i = 0; i <= index; i++) {
if (temp == NULL){
printf("Element ist nicht enthalten!");
return NULL;
} else if(i == index){
return temp->data;
} else{
temp = temp->ptr;
}
}
return NULL;
}
int Size(){
if (isEmpty())
return 0;
struct list *next = top->ptr;
int size = 1;
for (; next != NULL; next = next->ptr) {
size++;
}
return size;
}
int Contains(void *item){
if (top == NULL) {
return -1;
}
struct list *temp = top;
for (int i = 0; i < Size(); i++) {
if (temp == NULL){
printf("Element ist nicht enthalten!");
return -1;
} else if(item == temp->data){
return i;
} else{
temp = temp->ptr;
}
}
return -1;
}
void Remove(int index){
if(isEmpty())
return;
struct list *temp = top->ptr;
struct list *next = top;
if(index == 0){
free(top);
top = temp;
return;
}
for(int i = 1; i <= index; i++){
if (temp == NULL)
return;
else if (i == index){
next->ptr = temp->ptr;
free(temp);
return;
} else
next = temp;
temp = temp->ptr;
}
}
int main(){
// Befüllung mit verschiedenen Daten
int number1 = 255;
int number2 = rand() % 500;
int number3 = rand() % 500;
int number4 = rand() % 500;
int number5 = rand() % 500;
Add(&number1);
Add(&number2);
Add(&number3);
Add(&number4);
Add(&number5);
// Ausgabe der Liste
printf("%s%d\n", "Item 0: ", *(int *) Get(0));
printf("%s%d\n", "Item 1: ", *(int *) Get(1));
printf("%s%d\n", "Item 2: ", *(int *) Get(2));
printf("%s%d\n", "Item 3: ", *(int *) Get(3));
printf("%s%d\n", "Item 4: ", *(int *) Get(4));
// Contains Überprüfung
if(Contains((void *) 255) != -1)
printf("%d", "Die Zahl 255 ist am Index: ", Contains((void *) 255));
// Size von list
printf("Anzahl der Elemente in der Liste: ");
printf("%d\n", Size( ));
// Removetest
Remove(0);
Remove(4);
printf("%s%d\n", "Item 0: ", *(int *) Get(0));
printf("%s%d\n", "Item 1: ", *(int *) Get(1));
printf("%s%d\n", "Item 2: ", *(int *) Get(2));
printf("%s%d\n", "Item 3: ", *(int *) Get(3));
printf("%s%d\n", "Item 4: ", *(int *) Get(4));
}

145
uebung6/aufgabe1.c Normal file
View file

@ -0,0 +1,145 @@
#include <stdio.h>
#include <stdbool.h>
int main() {
// A1: Dateien beschreiben
// a. 10 Strings in eine Datei
FILE *fptr = fopen("../files/strings.txt", "w");
if(fptr == NULL){
printf("Datei kann nicht geoeffnet werden. \n");
return 1;
}
char a[4] = "abc";
char b[4] = "def";
char c[4] = "ghi";
char d[4] = "jkl";
char e[4] = "mno";
char f[4] = "pqr";
char g[4] = "stu";
char h[4] = "vwx";
char i[4] = "yza";
char j[4] = "bcd";
fprintf(fptr, "%s\n", a);
fprintf(fptr, "%s\n", b);
fprintf(fptr, "%s\n", c);
fprintf(fptr, "%s\n", d);
fprintf(fptr, "%s\n", e);
fprintf(fptr, "%s\n", f);
fprintf(fptr, "%s\n", g);
fprintf(fptr, "%s\n", h);
fprintf(fptr, "%s\n", i);
fprintf(fptr, "%s\n", j);
fclose(fptr);
// b. 10 Booleans
FILE *fptr2 = fopen("../files/booleans.txt", "w");
if(fptr2 == NULL){
printf("Datei kann nicht geoeffnet werden. \n");
return 1;
}
bool k = 0;
bool l = 1;
bool m = 0;
bool n = 1;
bool o = 0;
bool p = 1;
bool q = 0;
bool r = 1;
bool s = 0;
bool t = 1;
fprintf(fptr2, "%d\n", k);
fprintf(fptr2, "%d\n", l);
fprintf(fptr2, "%d\n", m);
fprintf(fptr2, "%d\n", n);
fprintf(fptr2, "%d\n", o);
fprintf(fptr2, "%d\n", p);
fprintf(fptr2, "%d\n", q);
fprintf(fptr2, "%d\n", r);
fprintf(fptr2, "%d\n", s);
fprintf(fptr2, "%d\n", t);
fclose(fptr2);
// c. 10 Integers
FILE *fptr3 = fopen("../files/integers.txt", "w");
if(fptr3 == NULL){
printf("Datei kann nicht geoeffnet werden. \n");
return 1;
}
int eins = 1;
int zwei = 2;
int drei = 3;
int vier = 4;
int funf = 5;
int sechs = 6;
int sieben = 7;
int acht = 8;
int neun = 9;
int zehn = 10;
fprintf(fptr3, "%d\n", eins);
fprintf(fptr3, "%d\n", zwei);
fprintf(fptr3, "%d\n", drei);
fprintf(fptr3, "%d\n", vier);
fprintf(fptr3, "%d\n", funf);
fprintf(fptr3, "%d\n", sechs);
fprintf(fptr3, "%d\n", sieben);
fprintf(fptr3, "%d\n", acht);
fprintf(fptr3, "%d\n", neun);
fprintf(fptr3, "%d\n", zehn);
fclose(fptr3);
// d. 10 Long Longs
FILE *fptr4 = fopen("../files/longlongs.txt", "w");
if(fptr4 == NULL){
printf("Datei kann nicht geoeffnet werden. \n");
return 1;
}
long long aa = 0;
long long ba = 1;
long long ca = 2;
long long da = 3;
long long ea = 4;
long long fa = 5;
long long ga = 6;
long long ha = 7;
long long ia = 8;
long long ja = 9;
fprintf(fptr4, "%lld\n", aa);
fprintf(fptr4, "%lld\n", ba);
fprintf(fptr4, "%lld\n", ca);
fprintf(fptr4, "%lld\n", da);
fprintf(fptr4, "%lld\n", ea);
fprintf(fptr4, "%lld\n", fa);
fprintf(fptr4, "%lld\n", ga);
fprintf(fptr4, "%lld\n", ha);
fprintf(fptr4, "%lld\n", ia);
fprintf(fptr4, "%lld\n", ja);
fclose(fptr4);
// e. Zahlen -128 bis 127
FILE *fptr5 = fopen("../files/short.txt", "w");
if(fptr5 == NULL){
printf("Datei kann nicht geoeffnet werden. \n");
return 1;
}
for (int j = -128; j < 128; j++) {
fprintf(fptr5, "%d\n", j);
}
fclose(fptr5);
return 0;
}

61
uebung6/aufgabe2.c Normal file
View file

@ -0,0 +1,61 @@
#include <stdio.h>
#include <string.h>
// Uebung 3 Aufgabe 8:
char Benutzer [5][2][20];
int anmeldung(){
// Protokolldatei öffnen
FILE *fptr = fopen("../files/protokoll.txt", "w");
if(fptr == NULL){
printf("Datei kann nicht geoeffnet werden!");
return 1;
}
printf("Registrierung als Benutzer1: \n");
printf("Benutzername festlegen: ");
scanf("%19s", &Benutzer[0][0]);
printf("Passwort festlegen: ");
scanf("%19s", &Benutzer[0][1]);
char benutzername_inp [20];
char passwort_inp [20];
printf("Anmeldung als Benutzer1: \n");
printf("Benutzername eingeben: ");
scanf("%s", &benutzername_inp);
int userID = 0;
int zeilen = 5;
for (int i = 0; i < zeilen; ++i) {
if(strcmp(&Benutzer[i][0],benutzername_inp) == 0){
userID = i;
i = 10;
} else if(i == zeilen-1) {
printf("Benutzer nicht gefunden!");
userID = 6;
}
}
if (userID != 6) {
int anmeldeversuche = 3;
while (anmeldeversuche > 0) {
printf("Passwort eingeben: ");
scanf("%s", &passwort_inp);
if (0 != strcmp(&Benutzer[userID][1], passwort_inp)) {
printf("Benutzereingabe falsch\n");
fprintf(fptr, "Anmeldeversuch von Benutzer %s fehlgeschlagen!\n", Benutzer[userID][0]);
anmeldeversuche--;
} else {
printf("Sie sind angemeldet!");
break;
}
}
if(anmeldeversuche == 0) printf("Zu viele Anmeldeversuche!");
}
return 0;
}
int main() {
anmeldung();
return 0;
}

32
uebung6/aufgabe3.c Normal file
View file

@ -0,0 +1,32 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// A3: Lottozahlen ziehen und in einer Datei speichern
FILE *fptr = fopen("../Lottozahlen.txt", "w");
if (fptr == NULL) {
printf("Not able to open the file.\n");
return 1;
}
time_t now;
now = time(0);
int numbers[10];
//Normale Zahlen
fprintf(fptr, "%s", ctime(&now));
for(int i = 0 ; i < 7 ; i++ ) {
numbers[i] = rand() % 49 +1;
for (int n = 0; n < 7; n++) {
if (numbers[i] == numbers[n]) {
numbers[i] = rand() % 49 +1;
}
}
fprintf(fptr,"%d ", numbers[i]);
}
fprintf(fptr, "\n");
fclose(fptr);
return 0;
}

31
uebung6/aufgabe4.c Normal file
View file

@ -0,0 +1,31 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main() {
// A4: Datei einlesen zum Auslesen von Lottozahlen zu einem bestimmten Datum
FILE *fptr = fopen("../Lottozahlen.txt", "r");
if (fptr == NULL) {
printf("Not able to open the file.\n");
return 1;
}
char input[11];
char s[11];
char m[11];
printf("Datum eingeben: ");
gets(input);
while (fgets(s, 11, fptr)) {
if (strcmp(s, input)==0) {
printf("Datum gefunden\n");
printf("Lottozahlen vom %s: ", s);
fgets(m, 99, fptr);
fgets(m, 99, fptr);
printf("%s", m);
break;
} else {
}
}
fclose(fptr);
return 0;
}

104
uebung6/aufgabe5.c Normal file
View file

@ -0,0 +1,104 @@
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
void insertAtBeginning(struct Node** head, int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = *head;
*head = newNode;
}
void sortList(struct Node* head) {
int swapped;
struct Node* current;
struct Node* last = NULL;
if (head == NULL) {
return;
}
do {
swapped = 0;
current = head;
while (current->next != last) {
if (current->data < current->next->data) {
int temp = current->data;
current->data = current->next->data;
current->next->data = temp;
swapped = 1;
}
current = current->next;
}
last = current;
} while (swapped);
}
void printList(struct Node* head) {
struct Node* current = head;
printf("Liste: [");
while (current != NULL) {
printf("%d", current->data);
if (current->next != NULL) {
printf(", ");
}
current = current->next;
}
printf("]\n");
}
void saveNodeInFile(char filepath[], struct Node *head) {
FILE *file = fopen(filepath, "w");
struct Node *item = head->next;
while (item) {
fwrite(&(item->data), sizeof(int), 1, file);
item = item->next;
}
fclose(file);
}
struct Node* loadNodeFromFile(char filepath[]) {
FILE *file = fopen(filepath, "r");
struct Node *list = NULL;
while (!feof(file)) {
int number = 0;
if (fread(&number, sizeof(int), 1, file))
insertAtBeginning(list, number);
}
fclose(file);
return list;
}
int main() {
struct Node* head = NULL;
// 1000 zufällige Werte hinzufügen
for (int i = 0; i < 1000; i++) {
int n = rand() % 1000;
insertAtBeginning(&head, n);
}
// Sortierung der Liste
sortList(head);
// Ausgabe der Liste
printList(head);
//Speicherung von Node in node.txt Datei
saveNodeInFile("/home/theo/CLionProjects/uebung6/files/node.txt", head);
//Laden des Inhalts der node.txt in Node
loadNodeFromFile("/home/theo/CLionProjects/uebung6/files/node.txt");
return 0;
}

View file

@ -0,0 +1,10 @@
0
1
0
1
0
1
0
1
0
1

View file

@ -0,0 +1,10 @@
1
2
3
4
5
6
7
8
9
10

View file

@ -0,0 +1,10 @@
0
1
2
3
4
5
6
7
8
9

2
uebung6/files/lotto.txt Normal file
View file

@ -0,0 +1,2 @@
Tue Nov 28 12:23:40 2023
42 44 14 41 11 45 13

BIN
uebung6/files/node.txt Normal file

Binary file not shown.

View file

@ -0,0 +1,3 @@
Anmeldeversuch von Benutzer Josh fehlgeschlagen!
Anmeldeversuch von Benutzer Josh fehlgeschlagen!
Anmeldeversuch von Benutzer Josh fehlgeschlagen!

256
uebung6/files/short.txt Normal file
View file

@ -0,0 +1,256 @@
-128
-127
-126
-125
-124
-123
-122
-121
-120
-119
-118
-117
-116
-115
-114
-113
-112
-111
-110
-109
-108
-107
-106
-105
-104
-103
-102
-101
-100
-99
-98
-97
-96
-95
-94
-93
-92
-91
-90
-89
-88
-87
-86
-85
-84
-83
-82
-81
-80
-79
-78
-77
-76
-75
-74
-73
-72
-71
-70
-69
-68
-67
-66
-65
-64
-63
-62
-61
-60
-59
-58
-57
-56
-55
-54
-53
-52
-51
-50
-49
-48
-47
-46
-45
-44
-43
-42
-41
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

10
uebung6/files/strings.txt Normal file
View file

@ -0,0 +1,10 @@
abc
def
ghi
jkl
mno
pqr
stu
vwx
yza
bcd

13
uebung7/aufgabe1.c Normal file
View file

@ -0,0 +1,13 @@
#include <stdio.h>
#include "palindromLIB/palindrom.h"
int main() {
// A1: Übung 2 Aufgabe 7 auslagern in ein Modul
char inputString[100];
printf("String eingeben: ");
scanf("%99s", &inputString);
palindrom(inputString);
return 0;
}

46
uebung7/aufgabe2.c Normal file
View file

@ -0,0 +1,46 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "modules/list.h"
int main() {
// A2 Liste auslagern und als abgeschlossene Einheit flexibel einsetzbar machen
// Befüllung mit verschiedenen Daten
int number1 = 255;
int number2 = rand() % 500;
int number3 = rand() % 500;
int number4 = rand() % 500;
int number5 = rand() % 500;
Add(&number1);
Add(&number2);
Add(&number3);
Add(&number4);
Add(&number5);
// Ausgabe der Liste
printf("%s%d\n", "Item 0: ", *(int *) Get(0));
printf("%s%d\n", "Item 1: ", *(int *) Get(1));
printf("%s%d\n", "Item 2: ", *(int *) Get(2));
printf("%s%d\n", "Item 3: ", *(int *) Get(3));
printf("%s%d\n", "Item 4: ", *(int *) Get(4));
// Contains Überprüfung
if(Contains((void *) 255) != -1)
printf("%d", "Die Zahl 255 ist am Index: ", Contains((void *) 255));
// Size von list
printf("Anzahl der Elemente in der Liste: ");
printf("%d\n", Size( ));
// Remove Test
Remove(0);
Remove(4);
printf("%s%d\n", "Item 0: ", *(int *) Get(0));
printf("%s%d\n", "Item 1: ", *(int *) Get(1));
printf("%s%d\n", "Item 2: ", *(int *) Get(2));
printf("%s%d\n", "Item 3: ", *(int *) Get(3));
printf("%s%d\n", "Item 4: ", *(int *) Get(4));
return 0;
}

32
uebung7/aufgabe3.c Normal file
View file

@ -0,0 +1,32 @@
#include <stdio.h>
#include "modules/geometrics.h"
int main() {
// Beispielwerte für die Körpergrößen
double quaderLaenge = 3.0, quaderBreite = 4.0, quaderHoehe = 5.0;
double pyramideSeitenlaenge = 3.0, pyramideHoehe = 4.0;
double kugelRadius = 2.0;
double kegelRadius = 2.0, kegelHoehe = 3.0;
// Berechnungen
printf("Quader:\n");
printf("Teilflächen: %.2f\n", quaderTeilflaechen(quaderLaenge, quaderBreite, quaderHoehe));
printf("Oberflaeche: %.2f\n", quaderOberflaeche(quaderLaenge, quaderBreite, quaderHoehe));
printf("Volumen: %.2f\n", quaderVolumen(quaderLaenge, quaderBreite, quaderHoehe));
printf("\nQuadratische Pyramide:\n");
printf("Teilflächen: %.2f\n", pyramideTeilflaechen(pyramideSeitenlaenge, pyramideHoehe));
printf("Oberflaeche: %.2f\n", pyramideOberflaeche(pyramideSeitenlaenge, pyramideHoehe));
printf("Volumen: %.2f\n", pyramideVolumen(pyramideSeitenlaenge, pyramideHoehe));
printf("\nKugel:\n");
printf("Teilflächen: %.2f\n", kugelTeilflaechen(kugelRadius));
printf("Oberflaeche: %.2f\n", kugelOberflaeche(kugelRadius));
printf("Volumen: %.2f\n", kugelVolumen(kugelRadius));
printf("\nKegel:\n");
printf("Teilflächen: %.2f\n", kegelTeilflaechen(kegelRadius, kegelHoehe));
printf("Oberflaeche: %.2f\n", kegelOberflaeche(kegelRadius, kegelHoehe));
printf("Volumen: %.2f\n", kegelVolumen(kegelRadius, kegelHoehe));
return 0;
}

View file

@ -0,0 +1,10 @@
add_library(Palindrom palindrom.c)
cmake_minimum_required(VERSION 3.26)
project(uebung7 C)
set(CMAKE_C_STANDARD 11)
add_subdirectory(palindromLIB) # Baut die Library (definiert im Unterordner) bevor die Applikation gebaut wird.
add_executable(PALINDROM palindrom.c)
target_link_libraries(PALINDROM PUBLIC Palindrom) # Fügt die Library zur Applikation hinzu.
target_include_directories(PALINDROM PUBLIC Palindrom) # Inkludiert die Headerdateien.

View file

@ -0,0 +1,15 @@
#include <stdio.h>
#include <string.h>
#include "palindrom.h"
void palindrom(char array[]){
int l = 0;
int h = strlen(array) - 1;
while (h > l) {
if (array[l++] != array[h--]) {
printf("%s ist kein Palindrom\n", array);
}
}
printf("%s ist ein Palindrom\n", array);
}

View file

@ -0,0 +1,6 @@
#ifndef PALINDROM_H
#define PALINDROM_H
void palindrom(char array[]);
#endif //PALINDROM_H

View file

@ -0,0 +1,65 @@
#include <math.h>
// Funktionen zur Berechnung der Oberfläche und des Volumens
// Quader
double quaderTeilflaechen(double laenge, double breite, double hoehe) {
double flaeche1 = laenge * breite; // Grundfläche
double flaeche2 = laenge * hoehe; // Seitenfläche 1
double flaeche3 = breite * hoehe; // Seitenfläche 2
return flaeche1 + 2 * (flaeche2 + flaeche3); // Gesamte Oberfläche
}
double quaderOberflaeche(double laenge, double breite, double hoehe) {
return 2 * (laenge * breite + laenge * hoehe + breite * hoehe);
}
double quaderVolumen(double laenge, double breite, double hoehe) {
return laenge * breite * hoehe;
}
// Quadratische Pyramide
double pyramideTeilflaechen(double seitenlaenge, double hoehe) {
double grundflaeche = seitenlaenge * seitenlaenge; // Grundfläche
double dreiecksflaeche = 0.5 * seitenlaenge * hoehe; // Dreiecksfläche (eine Seite der Pyramide)
return grundflaeche + 4 * dreiecksflaeche; // Gesamte Oberfläche
}
double pyramideOberflaeche(double seitenlaenge, double hoehe) {
return seitenlaenge * seitenlaenge + 2 * seitenlaenge * sqrt((seitenlaenge/2)*(seitenlaenge/2) + hoehe*hoehe);
}
double pyramideVolumen(double seitenlaenge, double hoehe) {
return (seitenlaenge * seitenlaenge * hoehe) / 3.0;
}
// Kugel
double kugelTeilflaechen(double radius) {
return 4 * M_PI * radius * radius; // Gesamte Oberfläche
}
double kugelOberflaeche(double radius) {
return 4 * M_PI * radius * radius;
}
double kugelVolumen(double radius) {
return (4.0 / 3.0) * M_PI * radius * radius * radius;
}
// Kegel
double kegelTeilflaechen(double radius, double hoehe) {
double grundflaeche = M_PI * radius * radius; // Grundfläche
double mantelflaeche = M_PI * radius * sqrt(radius*radius + hoehe*hoehe); // Mantelfläche
return grundflaeche + mantelflaeche; // Gesamte Oberfläche
}
double kegelOberflaeche(double radius, double hoehe) {
return M_PI * radius * (radius + sqrt(hoehe*hoehe + radius*radius));
}
double kegelVolumen(double radius, double hoehe) {
return (M_PI * radius * radius * hoehe) / 3.0;
}

View file

@ -0,0 +1,24 @@
#ifndef GEOMETRICS_H
#define GEOMETRICS_H
// Quader
double quaderTeilflaechen(double laenge, double breite, double hoehe);
double quaderOberflaeche(double laenge, double breite, double hoehe);
double quaderVolumen(double laenge, double breite, double hoehe);
// Quadratische Pyramide
double pyramideTeilflaechen(double seitenlaenge, double hoehe);
double pyramideOberflaeche(double seitenlaenge, double hoehe);
double pyramideVolumen(double seitenlaenge, double hoehe);
// Kugel
double kugelTeilflaechen(double radius);
double kugelOberflaeche(double radius);
double kugelVolumen(double radius);
// Kegel
double kegelTeilflaechen(double radius, double hoehe);
double kegelOberflaeche(double radius, double hoehe);
double kegelVolumen(double radius, double hoehe);
#endif //GEOMETRICS_H

View file

@ -0,0 +1,101 @@
#include "list.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct list{
void *data;
struct list *ptr;
};
struct list *top = NULL;
int isEmpty(){
return (top == NULL);
}
void Add(void *data){
struct list *temp = (struct list *) malloc(sizeof(struct list));
temp->data = data;
if(top == NULL){
temp->ptr = NULL;
top = temp;
return;
}
temp->ptr = top;
top = temp;
}
void *Get(int index){
if (top == NULL)
return NULL;
struct list *temp = top;
for (int i = 0; i <= index; i++) {
if (temp == NULL){
printf("Element ist nicht enthalten!");
return NULL;
} else if(i == index){
return temp->data;
} else{
temp = temp->ptr;
}
}
return NULL;
}
int Size(){
if (isEmpty())
return 0;
struct list *next = top->ptr;
int size = 1;
for (; next != NULL; next = next->ptr) {
size++;
}
return size;
}
int Contains(void *item){
if (top == NULL) {
return -1;
}
struct list *temp = top;
for (int i = 0; i < Size(); i++) {
if (temp == NULL){
printf("Element ist nicht enthalten!");
return -1;
} else if(item == temp->data){
return i;
} else{
temp = temp->ptr;
}
}
return -1;
}
void Remove(int index){
if(isEmpty())
return;
struct list *temp = top->ptr;
struct list *next = top;
if(index == 0){
free(top);
top = temp;
return;
}
for(int i = 1; i <= index; i++){
if (temp == NULL)
return;
else if (i == index){
next->ptr = temp->ptr;
free(temp);
return;
} else
next = temp;
temp = temp->ptr;
}
}

View file

@ -0,0 +1,11 @@
#ifndef LIST_H
#define LIST_H
int isEmpty();
void Add(void *data);
void *Get(int index);
int Size();
int Contains(void *item);
void Remove(int index);
#endif //LIST_H

53
uebung8/aufgabe1.c Normal file
View file

@ -0,0 +1,53 @@
#include <stdio.h>
#include <stdlib.h>
char intToExcel (int num){
// Umwandlung der Zahl zur Excelform
long long c = 26;
char alp[26] = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
for (int i = 1; i > 0; i++) {
if (num <= c) {
printf("Benoetigte Buchstaben: %d\n", i);
break;
} else {
c = c * c;
}
}
if(num < 0){
printf("Ungültige Zahl zum Umwandeln!");
}
char letter;
char res[5];
int index = 0;
while(num > 0){
int remainder = (num-1) % 26;
letter = 'A' + remainder;
res[index++] = letter;
num = (num - 1) / 26;
}
// Rückwärtige Ausgabe der Buchstaben
printf("Buchstabenfolge: ");
for (int i = index - 1; i >= 0; i--) {
printf("%c", res[i]);
}
printf("\n");
return letter;
}
int main() {
int num = 1;
// Umwandlung der Zahl ins Buchstabenspaltensystem von Excel
printf("Zahl eingeben zum Umwandeln: ");
scanf("%d", &num);
intToExcel(num);
return 0;
}

39
uebung8/aufgabe2.c Normal file
View file

@ -0,0 +1,39 @@
#include <stdio.h>
#include <math.h>
double winkelBerechnungUhr(int minuten, int stunden){
// Stunde in Restklasse 12: [0, 11] bringen
stunden = stunden % 12;
// Winkel des Stundenzeigers pro Stunde (360 Grad / 12 Stunden)
double stundenWinkelProStunde = 360.0 / 12.0;
// Winkel des Minutenzeigers pro Minute (360 Grad / 60 Minuten)
double minutenWinkelProMinute = 360.0 / 60.0;
// Berechnung der Winkel für Stunden- und Minutenzeiger
double stundenWinkel = stunden * stundenWinkelProStunde + minuten * (stundenWinkelProStunde / 60.0);
double minutenWinkel = minuten * minutenWinkelProMinute;
// Berechnung des absoluten Winkelsunterschieds
double winkelUnterschied = fabs(stundenWinkel - minutenWinkel);
// Winkelunterschied auf den kleinsten Winkel (0-180 Grad) reduzieren
if (winkelUnterschied > 180.0) {
winkelUnterschied = 360.0 - winkelUnterschied;
}
return winkelUnterschied;
}
int main() {
// Beispielaufruf der Funktion mit Stunden und Minuten
int stunden = 3;
int minuten = 15;
// Berechnung des Winkels und Ausgabe
double winkel = winkelBerechnungUhr(stunden, minuten);
printf("Der Winkel zwischen Stunden- und Minutenzeiger betraegt: %.2f Grad\n", winkel);
return 0;
}

43
uebung8/aufgabe3.c Normal file
View file

@ -0,0 +1,43 @@
#include <stdio.h>
#define SIZE 50
int upperLetterCount(const char *input){
int count = 0;
for (int i = 0; i < SIZE && input[i] != '\0'; ++i) {
if(input[i] >= 'A' && input[i] <= 'Z') {
count++;
}
}
return count;
}
int main() {
char test[SIZE];
// test mit As befüllen
for (int i = 0; i < SIZE; i++) {
test[i] = 'A';
}
// Änderung der Elemente in test
for (int j = 0; j < SIZE; ++j) {
if (j*2 < SIZE) {
test[j*2] = 'b';
}
if (j*3 < SIZE) {
test[j*3] = 'c';
}
}
// Ausgabe des Arrays test
printf("Testarray: [");
for (int k = 0; k < SIZE; ++k) {
if(k < SIZE-1){
printf("%c, ", test[k]);
} else {
printf("%c", test[k]);
}
}
printf("]\n");
printf("Anzahl der Großbuchstaben im String: %d", upperLetterCount(test));
return 0;
}

30
uebung8/aufgabe4.c Normal file
View file

@ -0,0 +1,30 @@
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int wordCount(const char *string){
int count = 0;
bool inWord = false;
size_t strSize = strlen(string);
printf("Länge des Strings: ");
printf("%zu\n", strSize);
for (; *string != '\0'; string++) {
if(*string == ' ' || *string == ',' || *string == '.'){
inWord = false;
} else {
if(!inWord){
count++;
inWord = true;
}
}
}
return count;
}
int main() {
char *string = "Coders are also just human with addictions and needs.";
printf("String: %s\n", string);
printf("Anzahl der Wörter im String: %d", wordCount(string));
return 0;
}

40
uebung8/aufgabe5.c Normal file
View file

@ -0,0 +1,40 @@
#include <stdio.h>
char findMostCommonChar(const char *str) {
int charCount[256] = {0}; // Ein Array zur Zählung der Vorkommen jedes ASCII-Zeichens, mit 0 initialisiert
// Zählung der Vorkommen jedes Zeichens im String
while (*str != '\0') {
charCount[(unsigned char)*str]++;
str++;
}
// Zählungsvariablen initialisieren BIG WIN INCOMING
char mostCommonChar = '\0';
int maxCount = 0;
// Suche des Zeichens mit dem meisten Vorkommen, rieche ich da BIG WIN?
for (int i = 0; i < 256; ++i) {
if (charCount[i] > maxCount) {
maxCount = charCount[i];
mostCommonChar = (char)i;
}
}
// BIG WIN ausgeben!!!!
return mostCommonChar;
}
int main() {
const char *inputString = "bigwinnnn";
char mostComChar = findMostCommonChar(inputString);
if (mostComChar != '\0') {
printf("Das Zeichen mit dem meisten Vorkommen ist: %c\n BIG WIN!", mostComChar);
} else {
printf("Der String ist leer.\n");
}
return 0;
}

28
uebung8/aufgabe6.c Normal file
View file

@ -0,0 +1,28 @@
#include <stdio.h>
void reverseCase(char *string){
while(*string != '\0'){
if((unsigned char)*string < 91){ // Falls der aktuelle Buchstabe groß ist,
*string = (char) ((unsigned char)*string + 32); // mach ihn klein!
} else if((unsigned char)*string > 96) { // Falls der aktuelle Buchstabe klein ist,
*string = (char) ((unsigned char)*string - 32); // mache ihn groß! (BIG WIN)
}
string++;
}
}
int main() {
// Beispielstring:
char string[] = "abbcccABBCCC";
printf("Beispielstring: %s\n", string);
// Umkehrung der Groß- sowie Kleinbuchstaben
reverseCase(string);
// Ausgabe des umgekehrten Strings
printf("Umgekehrter String: %s\n", string);
return 0;
}

28
uebung8/aufgabe7.c Normal file
View file

@ -0,0 +1,28 @@
#include <stdio.h>
#include <time.h>
int secondsSinceMonthBegin(){
// Aktuelle Zeit erhalten
time_t currentTime;
time(&currentTime);
// Lokale Zeitzone des Systems erhalten
struct tm *localTime;
localTime = localtime(&currentTime);
int secondsSinceMonthBegin = localTime->tm_sec + // Sekunden
localTime->tm_min * 60 + // Minuten
localTime->tm_hour * 3600 + // Stunden
(localTime->tm_mday - 1) * 86400; // Tage
// Berücksichtigung der Zeitzone
secondsSinceMonthBegin += timezone;
return secondsSinceMonthBegin;
}
int main() {
// Ausgabe der Sekunden seit Monatsbeginn:
printf("Anzahl der Sekunden seit Monatsbeginn: %d", secondsSinceMonthBegin());
return 0;
}

103
uebung8/aufgabe8.c Normal file
View file

@ -0,0 +1,103 @@
#include <stdio.h>
#include <time.h>
#include <string.h>
int main() {
// Aktuelle Zeit erhalten:
time_t now;
now = time(0);
char *strNow = ctime(&now);
// Umformung des Strings
char day[3];
char mon[3];
char year[5];
char hour[3];
char min[3];
char sec[3];
memcpy(day, strNow + 8, 2);
day[2] = '\0';
memcpy(mon, strNow + 4, 3);
mon[3] = '\0';
memcpy(year, strNow + 20, 4);
year[4] = '\0';
memcpy(hour, strNow + 11, 2);
hour[2] = '\0';
memcpy(min, strNow + 14, 2);
min[2] = '\0';
memcpy(sec, strNow + 17, 2);
sec[2] = '\0';
// Umwandlung des Monats in eine Zahl
switch (mon[0]) {
case 'J':
if (mon[1] == 'a') {
strcpy(mon, "01");
break;
} else if (mon[1] == 'u' && mon[2] == 'n') {
strcpy(mon, "06");
break;
} else if (mon[1] == 'u' && mon[2] == 'l') {
strcpy(mon, "07");
break;
}
break;
case 'F':
if (mon[1] == 'e') {
strcpy(mon, "02");
break;
}
break;
case 'M':
if (mon[1] == 'a' && mon[2] == 'r') {
strcpy(mon, "03");
break;
} else if (mon[1] == 'a' && mon[2] == 'y') {
strcpy(mon, "05");
break;
}
case 'A':
if (mon[1] == 'p') {
strcpy(mon, "04");
break;
} else if (mon[1] == 'u' && mon[2] == 'g') {
strcpy(mon, "08");
break;
}
case 'S':
if (mon[1] == 'e' && mon[2] == 'p') {
strcpy(mon, "09");
break;
}
case 'O':
if (mon[1] == 'c' && mon[2] == 't') {
strcpy(mon, "10");
break;
}
case 'N':
if (mon[1] == 'o' && mon[2] == 'v') {
strcpy(mon, "11");
break;
}
case 'D':
if (mon[1] == 'e' && mon[2] == 'c') {
strcpy(mon, "12");
break;
}
default:
printf("Ungueltiges Monatskuerzel!");
break;
}
// Ausgabe des Strings
printf("Heute ist der %s.%s.%s und es ist %s:%s Uhr und %s Sekunden.\n", day, mon, year, hour, min, sec);
return 0;
}

59
uebung9/main.c Normal file
View file

@ -0,0 +1,59 @@
#include <gtk/gtk.h>
#include <stdio.h>
// Globale Variable
int counter = 0;
void print_hello() {
printf("Hello GUI\n");
}
void count(GtkWidget *button, gpointer *countLabel) {
counter++;
char text[20];
snprintf(text, sizeof(text), "%d", counter);
gtk_label_set_text(GTK_LABEL(countLabel), text);
}
void activate(GtkApplication *app, gpointer user_data) {
// Fenster Config
GtkWidget *window = gtk_application_window_new(app); // erstellt ein neues voll funktionsfähiges Fenster
gtk_window_set_title(GTK_WINDOW(window), "Übung 9: GUI"); // Ändert den Namen des Fensters.
gtk_window_set_default_size(GTK_WINDOW(window), 200, 200); // Setzt die Anfangsgröße des Fensters.
// Grid erstellen
GtkWidget *grid = gtk_grid_new(); // Erstellt ein Element, dass ein Gridsystem enthält, um mehrere Elemente strukturiert anzuordnen.
// Das Gridsystem besteht aus Zellen, dessen Start in der Ecke links oben ist.
gtk_window_set_child(GTK_WINDOW(window), grid); // Fügt das Gridsystem als Kindelement des Fensters hinzu.
// Zaehler Label
GtkWidget *countLabel = gtk_label_new("0");
gtk_grid_attach(GTK_GRID (grid), countLabel, 0, 0, 1, 1);
// Button1 Config
GtkWidget *button1 = gtk_button_new_with_label("Button 0");
g_signal_connect(button1, "clicked", G_CALLBACK(count), countLabel);
gtk_grid_attach(GTK_GRID (grid), button1, 0, 1, 1, 1); // Fügt den Button in der Gridzelle (0, 0) hinzu und soll nur eine Gridzelle ausfüllen.
// Button2 Config
GtkWidget *button2 = gtk_button_new_with_label("Button 2");
g_signal_connect(button2, "clicked", G_CALLBACK(count), countLabel);
gtk_grid_attach(GTK_GRID (grid), button2, 1, 1, 1, 1); // Fügt den Button in der Gridzelle (1, 0) hinzu und soll nur eine Gridzelle ausfüllen.
// Quit Button Config
GtkWidget *quitButton = gtk_button_new_with_label("Quit");
g_signal_connect_swapped (quitButton, "clicked", G_CALLBACK(gtk_window_destroy), window); // gtk_window_destroy sendet ein Signal an das Fenster, dass es geschlossen werden soll.
gtk_grid_attach(GTK_GRID (grid), quitButton, 0, 2, 2, 1); // Fügt den Button in der Gridzelle (0, 1)
// Fenster final anzeigen
gtk_window_present(GTK_WINDOW(window)); // Übergabe des Fensters an die Anzeige
}
int main(int argc, char **argv) {
GtkApplication *app = gtk_application_new("de.hwr_berlin.uebung9_gui",G_APPLICATION_DEFAULT_FLAGS); // Initialisiert eine neue GTK Applikation.
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL); // Übergibt eine Funktion, die aufgerufen werden kann, um ein neues Fenster zu bauen.
int status = g_application_run(G_APPLICATION(app), argc, argv); // Führt die Applikation -> im Endeffekt die hinterlegte Funktion activate().
g_object_unref(app); // Gibt alle benötigten Ressourcen wieder frei. Ähnlich zu free() und fclose().
return status;
}