Mit SECUSTAFF die besten C-Entwickler finden
Wenn Sie auf der Suche nach einem C-Entwickler sind, dann sind Sie bei uns richtig. Ganz gleich ob Sie Mitarbeiter für eine unbefristete Festanstellung oder Freelancer für Ihr IT Projekt suchen.
Sie sind auf der Suche nach einem C Developer? Senden Sie uns Ihre Position einfach und unverbindlich per E-Mail.
E-Mail sendenDas Wichtigste zum Thema C
Wir wissen nicht alles, aber wir wissen, wo wir es finden. Wenn Sie auch noch etwas zum Thema C wissen möchten, finden Sie hier sicherlich die Antwort. Und falls Sie einen Experten benötigen, der all dieses Wissen bereits aufgebaut und erfolgreich in der Praxis eingesetzt hat, dann sprechen Sie uns an, wir finden für Sie die besten verfügbaren C-Experten, egal ob Sie einen Freelancer für einen Tag benötigen oder einen Mitarbeiter für eine dauerhafte Festanstellung. Wir stehen für Secure Staffing.
C (Programmiersprache)
C ist eine imperative und prozedurale Programmiersprache, die der Informatiker Dennis Ritchie in den frühen 1970er Jahren an den Bell Laboratories entwickelte. Seitdem ist sie eine der am weitesten verbreiteten Programmiersprachen.
Die Anwendungsbereiche von C sind sehr verschieden. Sie wird zur System- und Anwendungsprogrammierung eingesetzt. Die grundlegenden Programme aller Unix-Systeme und die Systemkernel vieler Betriebssysteme sind in C programmiert. Zahlreiche Sprachen, wie C++, Objective-C, C#, D, Java, JavaScript, LSL, PHP, Vala oder Perl, orientieren sich an der Syntax und anderen Eigenschaften von C.
Geschichte

Entstehung
C wurde 1969–1973 von Dennis Ritchie[2] in den Bell Laboratories für die Programmierung des damals neuen Unix-Betriebssystems entwickelt. Er stützte sich dabei auf die Programmiersprache B, die er und Ken Thompson in den Jahren 1969/1970 geschrieben hatten – der Name C entstand als Weiterentwicklung von B. B wiederum geht auf die von Martin Richards Mitte der 1960er Jahre entwickelte Programmiersprache BCPL zurück.[3] Ursprünglich war der Name NB („New B“) vorgesehen, daraus wurde schließlich C.[4] Ritchie schrieb auch den ersten Compiler für C. 1973 war die Sprache so weit ausgereift, dass man nun den Unix-Kernel für die PDP-11 neu in C schreiben konnte.
Weitere Entwicklung
K&R C erweiterte die Sprache um neue Schlüsselwörter wie long oder unsigned und führte die von Mike Lesk entwickelte I/O-Standardbibliothek und auf Empfehlung von Alan Snyder den Präprozessor ein.
Standards

C ist eine Programmiersprache, die auf fast allen Computersystemen zur Verfügung steht. Um den Wildwuchs zahlreicher Dialekte einzudämmen, wurde C mehrfach standardisiert (C89/C90, C99, C11). Abgesehen vom 8/16-bit-Mikrocontrollerbereich, wo eigene Dialekte existieren, sind die meisten aktuellen PC-/Server-Implementierungen wie auch aktuelle Mikrocontroller (gcc als C-Compiler!) eng an den Standard angelehnt; eine vollständige Implementierung aktueller Standards ist aber selten. In den meisten C-Systemen mit Laufzeitumgebung steht auch die genormte C-Standard-Bibliothek zur Verfügung. Dadurch können C-Programme, die keine sehr hardwarenahe Programmierung enthalten, in der Regel gut auf andere Zielsysteme portiert werden.
Das Normungsgremium von C ist die ISO/IEC – Arbeitsgruppe JTC1/SC22/WG14 – C, kurz als WG14 bekannt. Die nationalen Standardisierungsorganisationen übernehmen die Veröffentlichungen des internationalen Standards in an ihre Bedürfnisse angepasster Form.
| Jahr | Name | Standard |
|---|---|---|
| 1969 | Thompson und Ritchie entwickeln B | |
| 1972 | erste Veröffentlichung von C | |
| 1978 | K&R C | |
| 1987 | X/Open-C | |
| 1989 1990 | ANSI C, C89 ISO C, C90 | ANSI X3.159-1989 ISO/IEC 9899:1990 |
| 1999 | C99, C9X | ISO/IEC 9899:1999 |
| 2011 | C11, C1X | ISO/IEC 9899:2011 |
| 2018 | C17, C18 | ISO/IEC 9899:2018 |
| 2024 | C23, C2X | ISO/IEC 9899:2024 |
| ? | C2Y | |
K&R C
Bis ins Jahr 1989 gab es keinen offiziellen Standard der Sprache. Seit 1978 galt hingegen das Buch The C Programming Language als informeller De-facto-Standard, welches Brian W. Kernighan und Dennis Ritchie im selben Jahr veröffentlicht hatten.[5] Bezeichnet wird diese Spezifikation als K&R C.
Da in den folgenden Jahren die Zahl an Erweiterungen der Sprache ständig wuchs, man sich nicht auf eine gemeinsame Standard-Bibliothek einigen konnte und nicht einmal die UNIX-Compiler K&R C vollständig implementierten, wurde beschlossen, einen offiziellen Standard festzulegen. Nachdem dieser schließlich im Jahr 1989 erschienen war, blieb K&R C zwar noch für einige Jahre De-facto-Standard vieler Programmierer, verlor dann aber rasch an Bedeutung.
ANSI C
Im Jahr 1983 setzte das American National Standards Institute (ANSI) ein Komitee namens X3J11 ein, das 1989 seine Arbeit abschloss und die Norm ANSI X3.159-1989 Programming Language C verabschiedete. Diese Version der Sprache C wird auch kurz als ANSI C, Standard C oder C89 bezeichnet.
Ein Jahr später übernahm die International Organization for Standardization (ISO) den bis dahin rein amerikanischen Standard auch als internationale Norm, die ISO/IEC 9899:1990, kurz auch als C90 bezeichnet. Die Namen C89 und C90 beziehen sich also auf dieselbe Version von C.
Nach der ersten Entwicklung durch ANSI und ISO wurde der Sprachstandard für einige Jahre kaum geändert. Erst 1995 erschien das Normative Amendment 1 zu C90. Es hieß ISO/IEC 9899/AMD1:1995 und wird auch kurz als C95 bezeichnet. Neben der Korrektur einiger Details wurden mit C95 internationale Schriftsätze besser unterstützt.
C99
Nach einigen kleineren Revisionen erschien im Jahr 1999 der neue Standard ISO/IEC 9899:1999, kurz C99. Er war größtenteils mit C90 kompatibel und führte einige neue, teilweise von C++ übernommene Features ein, von denen einige bereits zuvor von verschiedenen Compilern implementiert worden waren. C99 wurde im Lauf der Jahre durch drei Technical Corrigendas ergänzt.
C11
Im Jahr 2007 begann die Entwicklung eines neuen Standards mit dem inoffiziellen Arbeitstitel C1X. Er wurde im Dezember 2011 veröffentlicht und ist in der Kurzform als C11 bekannt. Neben einer besseren Kompatibilität mit C++ wurden der Sprache wiederum neue Features hinzugefügt.[6][7]
C18
Diese Norm entspricht der von C11 mit der Ausnahme von Fehlerkorrekturen und einem neuen Wert von __STDC_VERSION__ und wird daher im selben Umfang wie C11 unterstützt.[8] Der Standard wurde im Juni 2018 unter der Norm ISO/IEC 9899:2018 freigegeben.[9]
C23
Diese Version wurde am 31. Oktober 2024 veröffentlicht und enthält umfangreiche Erweiterungen, die teilweise von C++ übernommen wurden (im Gegenzug „klaute“ allerdings auch C++ 20 Features aus C, die dort schon über zwei Jahrzehnten Standard waren).
C2Y
Seit Januar 2024 ist eine Weiterentwicklung von C unter dem Namen C2Y im Gange. Es wird angestrebt, diese Version in diesem Jahrzehnt zu finalisieren.
Verwendung

Trotz des eher hohen Alters ist die Sprache C auch heute weit verbreitet und wird sowohl im Hochschulbereich als auch in der Industrie und im Open-Source-Bereich verwendet.[10]
System- und Anwendungsprogrammierung
Das Haupteinsatzgebiet von C liegt in der Systemprogrammierung, insbesondere von eingebetteten Systemen, Treibern und Betriebssystemkernen. Der Grund liegt in der Kombination von erwünschten Charakteristiken wie Portabilität und Effizienz mit der Möglichkeit, Hardware direkt anzusprechen und dabei niedrige Anforderungen an eine Laufzeitumgebung zu haben.
Auch Anwendungssoftware wird oft in C erstellt, wobei die Relevanz der Sprache hier hinter andere zurückfiel, das ist besonders deutlich auf mobilen Plattformen. Viele Programmierschnittstellen für Anwendungsprogramme und Betriebssystem-APIs werden in Form von C-Schnittstellen implementiert, zum Beispiel Win32.[11]
Implementierung anderer Sprachen
Wegen der hohen Ausführungsgeschwindigkeit und geringen Codegröße werden Compiler, Programmbibliotheken und Interpreter anderer höherer Programmiersprachen (wie z. B. die Java Virtual Machine) oft in C implementiert.
C wird als Zwischencode einiger Implementierungen höherer Programmiersprachen verwendet. Dabei wird diese zuerst in C-Code übersetzt, der dann kompiliert wird. Dieser Ansatz wird verwendet, um ohne maschinenspezifische Entwicklung für den Codegenerator die Portabilität zu erhöhen (C-Compiler existieren für nahezu jede Plattform). Einige Compiler, die C auf diese Art benutzen, sind Chicken, EiffelStudio, Esterel, PyPy, Sather, Squeak und Vala.
C wurde allerdings als Programmiersprache und nicht als Zielsprache für Compiler entworfen. Als Zwischensprache ist es daher eher schlecht geeignet. Das führte zu C-basierten Zwischensprachen wie C−−.
C wird oft für die Erstellung von Anbindungen (englisch bindings) genutzt (zum Beispiel Java Native Interface). Diese Anbindungen erlauben es Programmen, die in einer anderen Hochsprache geschrieben sind, Funktionen aufzurufen, die in C implementiert wurden. Der umgekehrte Weg ist oft ebenfalls möglich und kann verwendet werden, um in C geschriebene Programme mit einer anderen Sprache zu erweitern (z. B. mod perl).
Syntax
C ist case-sensitiv.
Außerdem besitzt C eine sehr kleine Menge an Schlüsselwörtern. Die Anzahl der Schlüsselwörter ist so gering, weil fast alle Aufgaben, welche in anderen Sprachen über eigene Schlüsselwörter realisiert werden, über Funktionen der C-Standard-Bibliothek realisiert werden (zum Beispiel die Ein- und Ausgabe über Konsole oder Dateien, dynamische Speicherverwaltung usw.).
In C89 gibt es 32 Schlüsselwörter:
Standardbibliothek
Die C-Standard-Bibliothek ist integraler Bestandteil einer gehosteten (engl. hosted) C-Implementierung. Sie enthält unter anderem Makros und Funktionen, die mittels der Standard-Header-Datei verfügbar gemacht werden. Auf freistehenden (englisch freestanding) Implementationen dagegen kann der Umfang der Standardbibliothek eingeschränkt sein.
Die Standardbibliothek ist aufgeteilt in mehrere Standard-Header-Dateien, die hinzugelinkte Bibliothek ist jedoch oft eine einzige große Datei.
- „Gehostet“: C-Compiler und Programm befinden sich in einer Betriebssystem-Umgebung, welche übliche Dienste bietet (z. B. ein Dateisystem, textuelle Ein- und Ausgabekanäle, Speichermanagement).
- „Freistehend“: Das C-Programm läuft nicht unter einem Betriebssystem, sondern muss alle Gerätefunktionen selbst implementieren. Häufig stehen dennoch zumindest einige Bibliotheken vorab zur Verfügung. Hier finden häufig Cross-Compiler (auch „Target-Compiler“) Verwendung.
Module
Eine Modularisierung in C erfolgt auf Dateiebene. Eine Datei bildet eine Übersetzungseinheit; intern benötigte Funktionen und Variablen können so vor anderen Dateien verborgen werden. Die Bekanntgabe der öffentlichen Funktionsschnittstellen erfolgt mit sogenannten Header-Dateien. Damit verfügt C über ein schwach ausgeprägtes Modulkonzept.[13][14]
Das globale Sprachdesign sieht vor, dass ein Programm aus mehreren Modulen bestehen kann. Für jedes Modul existiert eine Quellcode-Datei (mit der Endung .c) und eine Header-Datei (mit der Endung .h). Die Quellcode-Datei enthält im Wesentlichen die Implementierung, die Header-Datei das Interface nach außen. Beide Dateien konsistent zu halten, ist bei C (wie auch bei C++, aber nicht mehr in C#) Aufgabe des Programmierers.
Module, die Funktionen aus anderen Modulen benutzen, inkludieren deren Header-Dateien und geben dem Compiler damit die notwendigen Informationen über die vorhandenen Funktionen, Aufrufkonventionen, Typen und Konstanten.
Jedes Modul kann für sich übersetzt werden und erzeugt eine Object-Datei. Mehrere Object-Dateien können zu einer Bibliothek zusammengefasst oder einzeln verwendet werden.
Mehrere Object-Dateien sowie Bibliotheken (die auch nur eine Sammlung von Objekt-Dateien sind) können mittels Linker (deutsch: Binder) zu einem ausführbaren Programm gebunden werden.
Undefiniertes Verhalten
Undefiniertes Verhalten (undefined behavior) ist nach der Definition des C-Standards „Verhalten bei Verwendung eines nicht portablen oder fehlerhaften Programmkonstrukts oder von fehlerhaften Daten, an die diese internationale Norm keine Anforderungen stellt“. Dies kann beispielsweise die Dereferenzierung eines Nullzeigers, die Division durch Null, der Zugriff auf Variablen durch Zeiger eines falschen Typs oder ein Überlauf bei vorzeichenbehafteten Ganzzahlen sein.[15] Unter der Annahme, dass undefiniertes Verhalten in einem korrekten Programm nicht vorkommt, optimieren bestimmte Compiler solche Konstrukte[16] in einer Weise, die das beobachtbare Verhalten verändern kann, etwa durch Entfernen von Code, der als nicht erreichbar eingestuft wird.
Allgemein kann diese Art der Optimierung dazu führen, dass getestete Programme mit anderen Optimierungsstufen oder neueren Compilerversionen fehlerhaftes Verhalten zeigen. Dieses Compilerverhalten wird teilweise kontrovers diskutiert. Auch kann in der hardwarenahen Programmierung mit C die Verwendung von z. B. Überläufen oder uninitialisierten Variablen zur Laufzeitoptimierung des Codes genutzt werden.[17] Geht der Compiler z. B. bei einer Schleife
for (int i=n; i<n+10; i++)
davon aus, dass kein Überlauf auftritt und sie daher höchstens zehnmal durchlaufen wird, kann dies ihn dazu veranlassen, eine vorherige Überprüfung auf Überlauf
if (n < n + 10)
als unnötigen Code entfernen. Solche Optimierungen können ihrerseits zu unerwünschtem Verhalten einschließlich registrierter Sicherheitslücken führen (siehe z. B.: CVE) führen.[18]
Compiler
Am weitesten verbreitet ist der seit 1987 bestehende freie C-Compiler der GNU Compiler Collection. Unter Windows ist auch der seit 1993 entwickelte Compiler Visual C++ weit verbreitet. Neben diesen beiden stehen zahlreiche weitere Compiler zur Verfügung.
Da es in C vergleichsweise wenige Schlüsselwörter gibt, ergibt sich der Vorteil eines sehr einfachen, kleinen Compilers. Auf neuen Computersystemen ist C deshalb oft die erste verfügbare Programmiersprache (nach Maschinencode und Assembler).
Beziehung zu Assembler, Portierbarkeit
Die Programmiersprache C wurde mit dem Ziel entwickelt, eine echte Sprachabstraktion zur Assemblersprache zu implementieren. Es sollte eine direkte Zuordnung zu wenigen Maschineninstruktionen geben, um die Abhängigkeit von einer Laufzeitumgebung zu minimieren. Als Resultat dieses Designs ist es möglich, C-Code auf einer sehr hardwarenahen Ebene zu schreiben, analog zu Assemblerbefehlen. Die Portierung eines C-Compilers auf eine neue Prozessorplattform ist, verglichen mit anderen Sprachen, wenig aufwendig. Beispielsweise ist der freie GNU-C-Compiler (gcc) für eine Vielzahl unterschiedlicher Prozessoren und Betriebssysteme verfügbar. Für den Entwickler bedeutet das, dass unabhängig von der Zielplattform fast immer auch ein C-Compiler existiert. C unterstützt damit wesentlich die Portierbarkeit von Programmen, sofern der Programmierer auf Assemblerteile im Quelltext und/oder hardwarespezifische C-Konstrukte verzichten kann. In der Mikrocontroller-Programmierung ist C die mit Abstand am häufigsten verwendete Hochsprache.
Sicherheit
Konzeptionell ist C auf eine einfache Kompilierbarkeit der Quelltexte und für den schnellen Ablauf des Programmcodes ausgelegt. Die Compiler erzeugen in der Regel aber nur wenig Code zur Gewährleistung der Datensicherheit und Betriebssicherheit während der Laufzeit der Programme. Daher wird zunehmend versucht, diese Mängel durch formale Verifikation aufzudecken und zu korrigieren beziehungsweise durch zusätzliche vom Programmierer zu erstellende Quelltexte zu beheben.[19][20][21]
C schränkt direkte Speicherzugriffe kaum ein. Dadurch kann der Compiler (anders als zum Beispiel in Pascal) nur sehr eingeschränkt bei der Fehlersuche helfen. Aus diesem Grund ist C für sicherheitskritische Anwendungen (Medizintechnik, Verkehrsleittechnik, Raumfahrt) weniger geeignet. Wenn in diesen Bereichen dennoch C eingesetzt wird, so wird in der Regel versucht, die Qualität der erstellten Programme durch zusätzliche Prüfungen wie Softwaretests mit hoher Testabdeckung zu erhöhen.
C enthält einige sicherheitskritische Funktionen; so überschreibt zum Beispiel gets(), in alten Standards eine Funktion der Standardbibliothek, fremde Speicherbereiche (Pufferüberlauf), wenn es auf eine unpassende (zu lange) Eingabe stößt. Der Fehler ist innerhalb von C weder bemerk- noch abfangbar. Um den großen Vorteil von C – die Existenz zahlreicher älterer Quellcodes – nicht zu verlieren, unterstützen auch aktuelle Implementierungen weiterhin diese und ähnliche Funktionen, warnen jedoch in der Regel, wenn sie beim Übersetzen im Quelltext benutzt werden. gets() wurde mit C11 endgültig aus der Sprachspezifikation entfernt.[22]
C ist nicht typsicher,[23] da verschiedene Datentypen zuweisungskompatibel gehandhabt werden können.[24]
Literatur
Einführungen
- Helmut Erlenkötter: C. Programmieren von Anfang an. 22. Auflage. Rowohlt, Reinbek bei Hamburg 2015, ISBN 978-3-499-60074-6.
- Joachim Goll: C als erste Programmiersprache. Mit den Konzepten von C11. 8., überarbeitete und erweiterte Auflage. Springer Vieweg, Wiesbaden 2014, ISBN 978-3-8348-1858-4.
- Robert Klima, Siegfried Selberherr: Programmieren in C. 3. Auflage. Springer, Wien 2010, ISBN 978-3-7091-0392-0.
- Peter Prinz, Ulla Kirch: C. Lernen und professionell anwenden. 3. Auflage. mitp, Heidelberg 2013, ISBN 978-3-8266-9504-9.
- Thomas Theis: Einstieg in C. Für Programmiereinsteiger geeignet. 3. Auflage. Rheinwerk, Bonn 2020, ISBN 978-3-8362-7569-9.
- Jürgen Wolf, René Krooß: Grundkurs C. 4., aktualisierte und überarbeitete Auflage. Rheinwerk, Bonn 2024, ISBN 978-3-367-10440-6.
Fortgeschritten
- Andrew Koenig: Der C-Experte: Programmieren ohne Pannen. Addison-Wesley, 1989, ISBN 3-89319-233-6 (deutsche Übersetzung von: C Traps and Pitfalls. Addison-Wesley, 1989.)
- Peter van der Linden: Expert-C-Programmierung. Verlag Heinz Heise, 1995, ISBN 3-88229-047-1 (deutsche Übersetzung von: Expert C Programming. Prentice Hall, 1994.)
Handbücher
- Rolf Isernhagen, Hartmut Helmke: Softwaretechnik in C und C++. Das Kompendium. Modulare, objektorientierte und generische Programmierung. ISO-C90, ISO-C99, ISO-C++98, MS-C++.NET. 4., vollständig überarbeitete Auflage, Hanser, München/Wien 2004, ISBN 3-446-22715-6.
- Jürgen Wolf, René Krooß: C von A bis Z. Das umfassende Handbuch. 5. aktualisierte und erweiterte Auflage, Rheinwerk, Bonn 2023, ISBN 978-3-8362-9504-8.
K&R C
- Brian Kernighan, Dennis Ritchie: The C Programming Language. Prentice Hall, Englewood Cliffs NJ 1978, ISBN 0-13-110163-3. (Deutsche Übersetzung: Brian Kernighan, Dennis Ritchie: Programmieren in C. Mit dem reference manual in deutscher Sprache. Hanser, München/Wien 1983)
K&R2
- Brian Kernighan, Dennis Ritchie: The C Programming Language. 2. Auflage. Prentice Hall, Englewood Cliffs NJ 1988, ISBN 0-13-110362-8 (Deutsche Übersetzung: Brian Kernighan, Dennis Ritchie: Programmieren in C. Mit dem C-Reference Manual in deutscher Sprache. 2. Auflage. Hanser, München / Wien 1990, ISBN 3-446-15497-3)
Weblinks
- C-Sprachübersicht (sowie Vergleich mit BASIC). eriedel.info
- Coding Programmer Page / C Library Reference and Examples. code-reference.com (englisch).
- C Library Reference and Examples (more formal). cppreference.com (englisch).
- David Straker: C Style: Standards and Guidelines. syque.com; 1991 erschienenes Buch (englisch).
- Mike Banahan, Declan Brady, Mark Doran: The C Book. gbdirect.co.uk, 1991 (englisch).
- Einfaches C-Tutorial für Einsteiger. clc-wiki.net (englisch).
Einzelnachweise
- ↑ Dennis M. Ritchie: The Development of the C Language. Lucent Technologies, Januar 1993, abgerufen am 10. September 2015: „The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol’s adherents would approve of.“
- ↑ Dennis M. Ritchie: The Development of the C Language. In: csapp.cs.cmu.edu. Lucent Technologies, Januar 1993, abgerufen am 10. September 2015.
- ↑ Ken Thompson: Users’ Reference to B. In: talisman.org. Abgerufen am 30. Mai 2015.
- ↑ Brian W. Kernighan: Die Unix-Story. Geschichtliches Sachbuch über das Computerbetriebssystem Unix. dpunkt.verlag, Heidelberg 2020, S. 97; 254 Seiten.
- ↑ Brian W. Kernighan, Dennis M. Ritchie: The C Programming Language. Prentice Hall, Englewood Cliffs NJ 1978, ISBN 0-13-110163-3.
- ↑ Sprachdefinition von C11 als ISO-Standard ISO/IEC 9899:2011, veröffentlicht am 8. Dezember 2011.
- ↑ ISO aktualisiert C-Standard. heise online, 22. Dezember 2011.
- ↑ Options Controlling C Dialect. In: gcc.gnu.org. Abgerufen am 8. September 2018.
- ↑ ISO/IEC 9899:2018 Programming languages C. ISO, abgerufen am 8. September 2018.
- ↑ Rolf Isernhagen, Hartmut Helmke: Softwaretechnik in C und C++. Das Kompendium. Modulare, objektorientierte und generische Programmierung. ISO-C90, ISO-C99, ISO-C++98, MS-C++.NET. 4., vollständig überarbeitete Auflage, Hanser, München/Wien 2004, ISBN 3-446-22715-6, Seite 4.
- ↑ Walkthrough: Creating Windows Desktop Applications (C++) Microsoft Docs, abgerufen am 5. Dezember 2019.
- ↑ Brian Kernighan, Dennis Ritchie: The C Programming Language. 2. Auflage, Prentice Hall, Englewood Cliffs (NJ) 1988, ISBN 0-13-110362-8, Seite 6.
- ↑ Scheler, Stilkerich, Schröder-Preikschat: Komponenten/Module. (PDF; 1,1 MB) informatik.uni-erlangen.de
- ↑ Bertrand Meyer: Objektorientierte Softwareentwicklung. Hanser, Wien / München; Prentice Hall Internat. 1990, ISBN 3-446-15773-5, S. 406.
- ↑ C language: Undefined behavior. Archiviert vom am 23. Mai 2021; abgerufen am 25. August 2021 (englisch).
- ↑ The LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior. Archiviert vom am 15. Mai 2011; abgerufen am 25. Mai 2021 (englisch).
- ↑ Anton Ertl: What every compiler writer should know about programmers or “Optimization” based on undefined behaviour hurts performance. (PDF) TU Wien, archiviert vom am 4. März 2016 (englisch).
- ↑ CWE-190: Integer Overflow or Wraparound. Archiviert vom am 21. Juli 2021; abgerufen am 26. August 2021 (englisch).
- ↑ Junan Qian, Baowen Xu: Formal Verification for C Program ( vom 5. Juli 2016 im Internet Archive) (PDF) In: Informatica, 2007, Volume 18, Number 2, S. 289–304; abgerufen am 5. Juli 2016.
- ↑ Harvey Tuch: Formal verification of C systems code. Sydney Research Lab., National ICT Australia, 2009; abgerufen am 5. Juli 2016
- ↑ Jay Abraham: Improving Software Quality with Static Code Analysis. MathWorks, 2012; abgerufen am 5. Juli 2016
- ↑ gets – C++ Reference. Abgerufen am 12. März 2020.
- ↑ Markus Bautsch: Cycles of Software Crises – How to avoid insecure and uneconomic software. In: ENISA Quartely, Vol. 3, No. 4, Oct–Dec 2007, S. 3–5
- ↑ Lambert Kenneth Louden: Programming Languages: Principles and Practices, Ch. 8.6.1 Type Compatibility / 8.7 Type Conversion. Cengage Learning, 2011, ISBN 978-1-133-38749-7.
Auf der Suche nach einem Job als C-Entwickler? Finden Sie hier alle unsere offenen Positionen.
Nicht das richtige Projekt oder den richtigen Job gefunden? Unser Jobboard wird täglich aktualisiert, schauen Sie gerne regelmäßig nach offenen Positionen im C Umfeld oder anderen IT Technologien.
C-Entwickler Positionen zeigen
Netzwerke / IT Security
LAN, WAN, Firewall, Penetration Testing, Backup / Recovery, Informationssicherheit, Identity Management, Virenschutz, ServiceNow, Netzwerksicherheit / Cybersecurity, Linux, SUSE Linux, Red Hat / RHEL, Ubuntu, Jitsi, Cloud, Nagios, VPN, VoIP, DNS, Cisco, S/MIME, Unified Communications (UC), IoT, i-doit, Zero Trust Security, Cloudflare, SIEM, NIS-2, Digitale Souveränität, Industrial IT
IT Service & Support
1st Level Support, 2nd Level Support, 3rd Level Support, Helpdesk / Service Desk / UHD, Onsite Support, Field Service, Rollout Techniker, ITIL Experten, Issue-Tracking-System Spezialisten, Service Manager (ITSM), SLA, Asset Management, Monitoring, Solarwinds, Jira, Knowledge Management, Mobile-Device-Management, Chatbot
Projektleitung, Finance & QM
IPMA, PMI, PRINCE2, ITIL, Berater DIN Normen, Berater ISO Normen, BSI Trainer / Auditoren, PMO, IT-Projektleiter / IT-Projektmanager, Transition Manager, Interim Manager, Change Manager, Risk Manager, Lean Manager, Kanban, Business Analysten, Data Scientists, Qualitätssicherung, IFRS, Agiles Management, OKRs, Business Intelligence
Datenbanken
Datenbankadministratoren / DBA, Datenbankentwickler, Datenbankarchitekten, DMS, MS SQL Server, Oracle, PL/SQL, T-SQL, mySQL, NoSQL, DB2, CouchDB, Big Data, MongoDB, MariaDB, DMS, ILIAS, Data Warehouse / DWH, ETL, OLAP, Apache Kafka, Hochverfügbarkeit, UC4, Salesforce, Snowflake, GraphQL, Blockchain, Graphdatenbank, Vektordatenbank
Softwareentwicklung / Emerging Technologies
Front-End, Back-End, Webentwickler, Full-Stack Entwickler, C, C++, C#, .NET, Java, JavaScript, Python, Ruby / Ruby on Rails, HTML, CSS, PHP, TypeScript, DevOps, Agile Softwareentwicklung, Scrum, Docker, React, Spring, Jenkins, Angular, Bash (Shell), iOS, Android, PowerShell, Debugging, Kubernetes, GCP, AWS, OpenShift, ISTQB Tester, SPS, Frameworks, ChatGPT, Flutter, Edge Computing, KI / AI, Quantum Computing, Generative KI, Low-Code-Plattform, Webassembly, LLM
Microsoft Infrastrukturen
Windows Clients, Windows 10, Windows 11, Windows Server 2019, Windows Server 2022, Windows Server 2025, Microsoft 365, Active Directory, Microsoft Azure, GPOs, MS SCCM, MS Office, MS Exchange, BizTalk, MS IIS, Hyper-V, Microsoft Dynamics 365 Business Central, HCL Notes / Domino, VMware, SharePoint, Microsoft Copilot, Microsoft Loop, Microsoft Intune, Microsoft Power Automate
SAP
SAP ERP, SAP Netweaver, Application Server, SAP Business Client, SAP Business Objects Analysis, SAP Cloud Platform, SAP Enterprise Portal, SAP Process Integration, SAP Solution Manager, SAP ITS, ABAP, SAP MaxDB, SAP GUI, SAP FI/CO, SAP APO, SAP SD, SAP PP, SAP MM, SAP BW / SAP BI, SAP HCM, SAP WM, SAP CS, SAP PI, SAP QM, SAP Concur, SAP for Retail, SAP IS-U, SAP IS-A, SAP R/3, SAP HANA, SAP S/4HANA, OpenUI5, Fiori
