Forum: PC-Programmierung Programm für C inklusive Debugger und Speicher-Checker unter Win 10 gesucht, bzw alternativen.


von McSoße (Gast)


Lesenswert?

Hallo, ich bin Schülerstudent im 2 Semester an der RWTH im Fachbereich 
Elektrotechnik und Mathematik und höre in diesem Semester zum ersten Mal 
die Programmiersprache C mit all seinen Problemen.
Ich komme nun an einen Punkt wo einfaches Coden nicht mehr funktioniert 
und man ohne Debugger und Speicher Checker nicht mehr weiter kommt, bzw 
die Arbeit nur unnötig erschwert.
Im Moment nutze ich CodeBocks (Win10), nur leider finde ich den Debugger 
nicht so hilfreich, bzw komme nicht damit klar und einen Speicher 
Checker wie Valgrind scheint es nicht zu geben?
Könnt ihr mir Programme empfehlen, die einen bei der Suche besser 
unterstützen?
Oder wäre es tatsächlich schlauer, Linux zu installieren, wovon ich 
eigentlich kein Fan bin, denn auf Windows mag ich nicht verzichten?

von Keiner N. (nichtgast)


Lesenswert?

Da gibts nur eines: Visual Studio 2017 Community Edition. Da ist alles 
drin, was du brauchst

von Hans (Gast)


Lesenswert?

Hallo,

damit man Dir mehr helfen kann sollte man Wissen:
- Programmieren von PC-Programmen
- Programmieren von Embedded - Controllern (welcher Typ).

Dann kann Dir geholfen werden

Ciao

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Hans schrieb:
> Programmieren von Embedded - Controllern

Davon ist hier nicht die Rede, hier geht's um Programme, die auf dem PC 
selbst laufen. Für Fingerübungen in C ist das auch vollkommen in 
Ordnung.

von Keiner N. (nichtgast)


Lesenswert?

Nun ja,

ein Ersatz für CodeBlocks und Anfänger zeugt nicht gerade von Embedded. 
Der geneigte Neuling nimmt für so was gerne die original Toolchain des 
Herstellers.

EDIT: Frage an den TO. Was verstehst du denn unter einem 
Speicherchecker?

: Bearbeitet durch User
von Vn N. (wefwef_s)


Lesenswert?

Ich habe meine Zweifel, dass ihr nach ein paar Monaten schon so komplexe 
Software schreibt, dass ohne Valgrind nix mehr läuft...

Natürlich wäre das alles auch einfacher, würde man den Studenten gleich 
direkt C++ beibringen, aber gut.

von Vn N. (wefwef_s)


Lesenswert?

Keiner N. schrieb:
> Frage an den TO. Was verstehst du denn unter einem
> Speicherchecker?

Vermutlich einen Dynamic Analyzer, wie sie in sehr großen 
Softwareprojekten eingesetzt werden, wenn Unit Testing und Static 
Analyzer nicht mehr ausreichen. Allerdings hab ich so meine Zweifel, 
dass der TS in seinem ersten Semester C schon an dem Punkt angekommen 
ist.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Lint bzw. das auch für C verwendbare OpenSource-Tool "cppcheck" bringt 
auch ein paar wertvolle Erkenntnisse. Das ist zwar "nur" statische 
Codeanalyse, aber auch die erkennt viele Probleme, mit denen man beim 
Erlernen von C zu tun bekommen kann.

http://cppcheck.sourceforge.net/

von McSoße (Gast)


Lesenswert?

Keiner N. schrieb:
> Da gibts nur eines: Visual Studio 2017 Community Edition. Da ist
> alles
> drin, was du brauchst

Werde ich mir einmal anschauen, danke für den Tipp.

Hans schrieb:
> Hallo,
>
> damit man Dir mehr helfen kann sollte man Wissen:
> - Programmieren von PC-Programmen
> - Programmieren von Embedded - Controllern (welcher Typ).
>
> Dann kann Dir geholfen werden
>
> Ciao

Es geht hauptsächlich um grundlegende Programmierungen  von 
PC-Programmen (Sortieralgorithmen etc.)
Embedded kommt für mich erst nach dem Abitur, habe bisher bzw höre nur 
Ana 1-2 für Mathematiker sowie Lina 1-2 für Mathematiker und Physik für 
E-Techniker , bin wie gesagt im Schülerstudium.

Keiner N. schrieb:
> EDIT: Frage an den TO. Was verstehst du denn unter einem
> Speicherchecker?

Ein Tool wie Valgrind, was mir Speicherfehler aufzeigt, die ich z.b mit 
malloc und co nicht richtig reserviert habe.

vn n. schrieb:
> Ich habe meine Zweifel, dass ihr nach ein paar Monaten schon so
> komplexe
> Software schreibt, dass ohne Valgrind nix mehr läuft...


Nein zu komplex ist es nicht, nur man macht es sich unnötig schwierig he 
solche Tools.

von McSoße (Gast)


Lesenswert?

vn n. schrieb:
>Allerdings hab ich so meine Zweifel,
> dass der TS in seinem ersten Semester C schon an dem Punkt angekommen
> ist.

Richtig, ich benötige nur etwas wie Valgrind für Windows, oder ich 
müsste versuchen Linux neben Windows zu installieren, ob dies allerdings 
sinnvoll ist, wäre eine andere Frage? Müsste ich bei solch eine 
unterfangen etwas beachten?

von Daniel A. (daniel-a)


Lesenswert?

McSoße schrieb:
> Müsste ich bei solch eine
> unterfangen etwas beachten?

Mache ein Backup, mindestems vom bootloader, und pass auf, dass du deine 
Windows Partition nicht versehentlich löschst oder überschreibst.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bevor Du Dich mit Valgrind auseinandersetzt, genügen auch diverse 
einfachere Möglichkeiten. Die von mir schon genannten Tools lint und 
cppcheck werden Dir ausreichend hart auf die Finger klopfen, daß Du 
mit hoher Wahrscheinlichkeit Deine Probleme auch damit lösen kannst, 
ohne gleich mit so schweren Geschützen wie Valgrund anzurücken.

Wenn man bei einem µC herausfinden will, warum die LED so dunkel blinkt, 
braucht man auch kein zig-GHz-Speicheroszilloskop mit mindestens 4 
Kanälen und mehr Samplememory als Dein PC Arbeitsspeicher hat.

von Andreas H. (Gast)


Lesenswert?

McSoße schrieb:
> Embedded kommt für mich erst nach dem Abitur, habe bisher bzw höre nur
> Ana 1-2 für Mathematiker sowie Lina 1-2 für Mathematiker und Physik für
> E-Techniker , bin wie gesagt im Schülerstudium.

Bietet die Uni keine "Einführung in die imperativer Programmierung" an?
Das wird doch oft extra für die Mathematiker angeboten.

MfG

von Keiner N. (nichtgast)


Lesenswert?

Memory Leaks kann man auch mit dem Visual Studio aufdecken.

https://docs.microsoft.com/de-de/visualstudio/debugger/finding-memory-leaks-using-the-crt-library?view=vs-2015

hier mal was zum einlesen.

von Bernd K. (prof7bit)


Lesenswert?

Daniel A. schrieb:
> McSoße schrieb:
>> Müsste ich bei solch eine
>> unterfangen etwas beachten?
>
> Mache ein Backup, mindestems vom bootloader, und pass auf, dass du deine
> Windows Partition nicht versehentlich löschst oder überschreibst.

Man kann auch einfach VirtualBox nehmen und sich so viele verschiedene 
OS zum Auspropieren oder für sonstige Zwecke als VM installieren wie man 
lustig ist, da kann der Anfänger nix am Hostsystem kaputt machen, wenn 
er mal eine Maschine zerschossen hat kann er sie wieder auf einen 
funktionierenden Stand zurücksetzen und für alle normalen Belange 
arbeitet er damit genauso als liefe es auf dem blanken Eisen. Nur mal so 
am Rande.

von Vn N. (wefwef_s)


Lesenswert?

McSoße schrieb:
> Nein zu komplex ist es nicht, nur man macht es sich unnötig schwierig he
> solche Tools.

Dann bezweifle ich, dass du deine Möglichkeiten schon ausgeschöpft hast. 
Von wie vielen Codezeilen reden wir überhaupt, 100, 200?

von McSoße (Gast)


Lesenswert?

vn n. schrieb:
> McSoße schrieb:
>> Nein zu komplex ist es nicht, nur man macht es sich unnötig schwierig he
>> solche Tools.
>
> Dann bezweifle ich, dass du deine Möglichkeiten schon ausgeschöpft hast.
> Von wie vielen Codezeilen reden wir überhaupt, 100, 200?

Wir reden von 200-300 Zeilen, im Moment

Bernd K. schrieb:
> Man kann auch einfach VirtualBox nehmen und sich so viele verschiedene
> OS zum Auspropieren oder für sonstige Zwecke als VM installieren wie man
> lustig ist, da kann der Anfänger nix am Hostsystem kaputt machen, wenn
> er mal eine Maschine zerschossen hat kann er sie wieder auf einen
> funktionierenden Stand zurücksetzen und für alle normalen Belange
> arbeitet er damit genauso als liefe es auf dem blanken Eisen. Nur mal so
> am Rande.

Versuche es gerade so zu installieren, allerdings funktioniert es 
irgendwie nicht:) Stichwort: display corruption

von McSoße (Gast)


Lesenswert?

Ich habe gerade versucht Virtual Studios zum laufen zu bringen, es 
funktioniert auch bei kleineren Programmen, allerdings bei meinem 
jetzigen, was auf Codeblocks ohne Fehler läuft, führt hier zu 28 
Fehlern.
Ist VS überhaupt für C geeignet?

von Keiner N. (nichtgast)


Lesenswert?

gib mal bitte ein Beispiel, was der anmeckert.

von McSoße (Gast)


Lesenswert?

Keiner N. schrieb:
> gib mal bitte ein Beispiel, was der anmeckert.

Hier ein paar Beispiele:
1) Compilerfehler C2087   "counter_array": Feldindex fehlt
2) Compilerfehler C2133   'counter_array': Unbekannte Größe
3) Compilerfehler C2133   'timer_array': Unbekannte Größe
4) Compilerfehler C2057    Konstanter Ausdruck erwartet

usw

von ... (Gast)


Lesenswert?

Scheinbar ist der TO intellektuell gar nicht in Lage Programme
in C zu schreiben und deswegen nach "Speicher-Checker"n schreit.

Vielleicht sollte er sich erstmal mit Quickbasic beschaeftigen.

Und am besten dabei bleiben.

von McSoße (Gast)


Lesenswert?

... schrieb:
> Scheinbar ist der TO intellektuell gar nicht in Lage Programme
> in C zu schreiben und deswegen nach "Speicher-Checker"n schreit.
>
> Vielleicht sollte er sich erstmal mit Quickbasic beschaeftigen.
>
> Und am besten dabei bleiben.

Wo schreie ich denn bitte danach? Ich suche nur ein Programm was einen 
das Leben leichter macht. Ich bin sehr wohl in der Lage ein Programm zu 
scheiben, bisher hat es jedenfalls immer funktioniert, von de Profs wird 
uns leider nur Valgrind nah gelegt.
Finde dein Anschuldigung sehr frech!

von grundschüler (Gast)


Lesenswert?

1) Compilerfehler C2087   "counter_array": Feldindex fehlt
2) Compilerfehler C2133   'counter_array': Unbekannte Größe

da steht doch nachvollziehbar, was fehlt.

von McSoße (Gast)


Lesenswert?

grundschüler schrieb:
> 1) Compilerfehler C2087   "counter_array": Feldindex fehlt
> 2) Compilerfehler C2133   'counter_array': Unbekannte Größe
>
> da steht doch nachvollziehbar, was fehlt.

Ja für V.S. allerdings verstehe ich es nicht, warum dort Fehler kommen, 
obwohl da Programm Fehlerfrei auf Codeblocks lief und auch Fehlerfrei 
von dem Überprüfungsprogramm der UNI angenommen wurde.

Der Kontext ist hier wichtig, die hier angezeigten Fehler kann ich 
lösen, allerdings dürften dort eigentlich keine sein.

von McSoße (Gast)


Lesenswert?

McSoße schrieb:

> Ja für V.S. allerdings verstehe ich es nicht, warum dort Fehler kommen,
> obwohl das Programm fehlerfrei auf Codeblocks lief und auch fehlerfrei
> von dem Überprüfungsprogramm der UNI angenommen wurde.
>
> Der Kontext ist hier wichtig, die hier angezeigten Fehler kann ich
> lösen, allerdings dürften dort eigentlich keine sein.

Sry, für die Fehler in meinem Text, ich bin gerade in Eile

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der mit VisualStudio (nicht "Virtual") gelieferte C-Compiler ist zwar 
gut, aber alt, d.h. er unterstützt wohl immer noch kein C99 oder neuer.

Ohne aber Deinen Code zu sehen, kann man anhand der Fehlermeldungen 
nicht erahnen, ob das Dein Problem ist.

Jedoch bleibe ich dabei: Du brauchst für Dein 200-300-Zeilen-Programm 
kein Valgrind.

Nein.

Du musst auch kein anderes Betriebssystem auf Deinem PC installieren, 
ein simpler Lint bzw. cppcheck-Lauf wird Dir vermutlich schon genug 
mitteilen.


Ansonsten: Zeig' einfach mal Deinen Code. Bitte als Dateianhang.

Dann kann nämlich auch mal jemand, der sich mit C auskennt, 
drüberschauen -- ich hab' einfach mal so das Gefühl, daß jemand mit 
ausreichend Erfahrung bereits durch einfaches Hinsehen das findet, wofür 
Du Valgrind einsetzen willst.

Und hier im Forum sind auch Leute unterwegs, die C tatsächlich 
beherrschen.  Zwar haben wir auch den einen oder anderen Spinner, die 
sich in erster Linie durch die Kombination von Ahnungslosigkeit und 
Abneigung C gegenüber hervortun, aber mindestens einen davon erkennt man 
sofort an seinen Umgangsformen.

von Arc N. (arc)


Lesenswert?

McSoße schrieb:
> vn n. schrieb:
>>Allerdings hab ich so meine Zweifel,
>> dass der TS in seinem ersten Semester C schon an dem Punkt angekommen
>> ist.
>
> Richtig, ich benötige nur etwas wie Valgrind für Windows, oder ich
> müsste versuchen Linux neben Windows zu installieren, ob dies allerdings
> sinnvoll ist, wäre eine andere Frage? Müsste ich bei solch eine
> unterfangen etwas beachten?

Windows 10 in einer halbwegs aktuellen Version installiert? Falls ja, 
WSL (Windows Subsystem for Linux) installieren und danach eine der 
Distributionen aus dem Windows-Store.
Alternative falls der Rechner genug RAM hat: Bspw. VirtualBox nehmen und 
eine VM mit einem beliebigen Linux einrichten.

Zu den Compilermeldungen: Falls die Dateinamen mit .cpp enden übersetzt 
MSVC die auch als C++. Ansonsten sollte der MSVC seit 2015 kompatibel 
genug sein.

Das Tools wie Valgrind hier benötig werden, wage ich allerdings auch zu 
bezweifeln.

von McSoße (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> [...]

Danke für die Hilfe ich werde einem Cppcheck testen.
Und ja, vlt ist bei dieser Zeilenanzahl noch kein Valgrind nötig, nur 
wenn es alle nutzen, springt man leicht mit auf den Zug:)


Meinen Code würde ich zwar gerne posten, nur handelt es sich hier um 
Hausaufgaben und naja bekomme das schon alleine hin:)

Danke dennoch für das Angebot

von Bernd K. (prof7bit)


Lesenswert?

McSoße schrieb:
> vlt ist bei dieser Zeilenanzahl noch kein Valgrind nötig, nur
> wenn es alle nutzen, springt man leicht mit auf den Zug:)

Du solltest erstmal die Grundlagen von C lernen (Compiler, Linker, Hello 
World) bevor Du irgendwo "aufspringst".

Du brauchst dazu auch kein Visual-irgendwas und auch keinen Debugger und 
schon gar keinen Profiler oder sonstiges Brimborium, sondern erst mal 
nur eine Toolchain, einen Editor und eine Konsole. Wenn Du das 
übersprungen hast dann hol es jetzt nach und zwar so lange bis Du 
geblickt hast was da abläuft und wie das alles zusammenhängt und 
funktioniert. Und vorher machst Du nichts anderes! Man setzt sich 
schließlich auch nicht auf eine 1000er Kawasaki bevor man nicht erstmal 
sicher mit dem Fahrrad fahren kann - und zwar OHNE Stützräder! Und 
danach mit dem Mofa!

Vielleicht wartest Du erstmal die erste Vorlesung ab und hörst zu was 
der Prof zu dem Thema zu sagen hat.

: Bearbeitet durch User
von McSoße (Gast)


Lesenswert?

Bernd K. schrieb:
> Du solltest erstmal die Grundlagen von C lernen (Compiler, Linker, Hello
> World) bevor Du irgendwo "aufspringst".
>
> Du brauchst dazu auch kein Visual-irgendwas und auch keinen Debugger und
> schon gar keinen Profiler oder sonstiges Brimborium, sondern erst mal
> nur eine Toolchain, einen Editor und eine Konsole. Wenn Du das
> übersprungen hast dann hol es jetzt nach und zwar so lange bis Du
> geblickt hast was da abläuft und wie das alles zusammenhängt und
> funktioniert. Und vorher machst Du nichts anderes! Man setzt sich
> schließlich auch nicht auf eine 1000er Kawasaki bevor man nicht erstmal
> sicher mit dem Fahrrad fahren kann - und zwar OHNE Stützräder! Und
> danach mit dem Mofa!
>
> Vielleicht wartest Du erstmal die erste Vorlesung ab und hörst zu was
> der Prof zu dem Thema zu sagen hat.

Naja, das Semester läuft schon gut 2 Monate und es wurden schon 6 
Programmieraufgaben abgegeben, sind gerade bei dem Thema Laufzeitanalyse 
und Graphentheorie

von Elo (Gast)


Lesenswert?

Ui, also Leute, ich glaube ihr macht euch das irgendwie zu leicht.
Er soll wahrscheinlich solch ein Tool nutzen, wüsste nicht warum ihr 
alle dagegen seit?
Klar ist es für einen 200-300 Zeilen Code nicht unbedingt nötig, aber 
warum sollte man es nicht nutzen?
Ich selbst habe 13 Jahre Erfahrung mit C und würde nie von solch einem 
Tool abraten, eher im Gegenteil.
TE: An deiner Stelle würde ich mit Linus draufziehen und Valgrind 
nutzen, macht alles 100mal einfacher.

von Bernd K. (prof7bit)


Lesenswert?

Elo schrieb:
> Er soll wahrscheinlich solch ein Tool nutzen,

Das hat er nicht geschrieben.

von Bernd K. (prof7bit)


Lesenswert?

McSoße schrieb:
> Naja, das Semester läuft schon gut 2 Monate und es wurden schon 6
> Programmieraufgaben abgegeben, sind gerade bei dem Thema Laufzeitanalyse
> und Graphentheorie

Du kannst es an dem Punkt auch abbrechen und die Zeit (weiterhin) 
anderweitig nutzen, es gibt wahrscheinlich gar keinen Grund für Dich C 
zu lernen wenn Du eh kein Interesse daran hast.

von Daniel A. (daniel-a)


Lesenswert?

Unter Linux hat man zusätzlich noch ASAN, ein unglaublich praktisches 
tool:
1
daniel@colibri:~$ cat test.c
2
int main(){
3
  *(int*)0 = 0;
4
}
5
daniel@colibri:~$ gcc -g -Og -std=c99 -Wall -Wextra -pedantic -Werror -fsanitize=undefined -fsanitize=address -fstack-protector-all test.c -o t
6
daniel@colibri:~$ ./t
7
test.c:2:12: runtime error: store to null pointer of type 'int'
8
ASAN:DEADLYSIGNAL
9
=================================================================
10
==16073==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x563fa2ad7b45 bp 0x563fa2ad7c10 sp 0x7ffe6c65e880 T0)
11
    #0 0x563fa2ad7b44 in main /home/daniel/test.c:2
12
    #1 0x7ff8e000b2e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
13
    #2 0x563fa2ad7a09 in _start (/home/daniel/t+0xa09)
14
15
AddressSanitizer can not provide additional info.
16
SUMMARY: AddressSanitizer: SEGV /home/daniel/test.c:2 in main
17
==16073==ABORTING

Die Optionen -fsanitize=undefined und -fsanitize=address gehören zu 
ASAN, es gibt noch andere Dinge, die man damit testen kann.

Die Option -std=c99 gibt an, dass der Code c99 konform sein sollte, 
-Wall -Wextra -pedantic stellt fast alle Warnungen ein, und -Werror 
macht aus Warnungen Fehler.

Und das -g -Og stellt Debug Symbole ein und Optimiert fürs Debuggen.

Ich achte bei all meinen Programmen darauf, dass diese mit den Optionen 
Kompilieren und funktionieren. Das verhindert allerhand spätere 
Probleme.

von c-hater (Gast)


Lesenswert?

Rufus Τ. F. schrieb:

> Zwar haben wir auch den einen oder anderen Spinner, die
> sich in erster Linie durch die Kombination von Ahnungslosigkeit und
> Abneigung C gegenüber hervortun, aber mindestens einen davon erkennt man
> sofort an seinen Umgangsformen.

Und daran, dass er trotz (oder gerade wegen des Hasses) die Fehler 
sieht, denn der Hass resultiert aus der (leidvoll gewonnenen) Kenntnis 
all der Schwächen dieser verfickten Sprache...

von Roland F. (rhf)


Lesenswert?

Hallo,
c-hater schrieb:
> Und daran, dass er trotz (oder gerade wegen des Hasses) die Fehler
> sieht...

Tja, das ist so ein Problem mit dem Hass, irgend wann wird daraus 
Fanatismus, Intoleranz und Größenwahn. Und wenn man sich so deine 
Beiträge zu C-Themen anschaut, bist du nicht mehr weit davon weg.

rhf

von McSoße (Gast)


Lesenswert?

Bernd K. schrieb:
> Du kannst es an dem Punkt auch abbrechen und die Zeit (weiterhin)
> anderweitig nutzen, es gibt wahrscheinlich gar keinen Grund für Dich C
> zu lernen wenn Du eh kein Interesse daran hast.

Wie kommst du darauf, dass es mich nicht interessiert?
Hoffe es liegt nicht an Meiner frage ein Programm mit Hilfsmitteln 
sauber zu schreiben, so wie es uns gesagt wurde:) Wenn doch, dann haben 
wir alle hier in meinem Studiengang, ein riesen Problem.
Ich werde nach meinem Abitur höchstwahrscheinlich technische Informatik 
oder reine Informatik und vlt noch Mathematik (Doppelstudium) studieren, 
deswegen ist C sehr wichtig.  Im Moment finde ich die Kombi Mathe und 
reine Informatik am besten.

Ich möchte es hier noch einmal unmissverständlich klar machen, auch wenn 
es mir nichts bringt, mich hier zu rechtfertigen, es ging hier nicht um 
Desinteresse oder darum, dass ich zu dumm für ein Studium wäre oder was 
auch immer. Sondern darum ein Tool am meiner Seite zu haben, was unter 
Windows funktioniert und mir mein Leben etwas einfachen macht, denn 
früher oder später benötig ich es eh.

von McSoße (Gast)


Lesenswert?

c-hater schrieb:
> Und daran, dass er trotz (oder gerade wegen des Hasses) die Fehler
> sieht, denn der Hass resultiert aus der (leidvoll gewonnenen) Kenntnis
> all der Schwächen dieser verfickten Sprache...

Was ich mich Frage ist, warum man diese Sprache nicht ersetzen kann?
Es gibt ja immerhin genug alternativen.
Ist sie für das hardwarenahe Programmieren wirklich so essentiell ?

Frage an alle Profis hier:)

von Roland F. (rhf)


Lesenswert?

Hallo,
McSoße schrieb:
> Was ich mich Frage ist, warum man diese Sprache nicht ersetzen kann?

Warum sollte man?

rhf

von Vn N. (wefwef_s)


Lesenswert?

McSoße schrieb:
> Was ich mich Frage ist, warum man diese Sprache nicht ersetzen kann?
> Es gibt ja immerhin genug alternativen.
> Ist sie für das hardwarenahe Programmieren wirklich so essentiell ?

Es gibt im Embeddedbereich im großen und Ganzen eine Alternative, und 
die heißt C++.

Roland F. schrieb:
> Warum sollte man?

Weil fehleranfällig.

: Bearbeitet durch User
von McSoße (Gast)


Lesenswert?

Roland F. schrieb:
> Hallo,
>
> Warum sollte man?
>
> rhf

Hi,
es gibt ja sehr viele, die sich über diese Sprache beschweren, also wird 
es sein Gründe haben?Ich persönlich finde sie im Moment etwas 
umständlich, weil man eben mehr um die Ecke denken muss (Speicher etc), 
aber man gewöhnt sich eigentlich auch schnell daran.
Deswegen fragte ich nach speziellen Gründen gegen diese Sprache, denn 
mir würde nur der eine Grund einfallen, habe die richtige Praxis im 
Beruf allerdings noch nicht erlebt.

von guest (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Der mit VisualStudio (nicht "Virtual") gelieferte C-Compiler ist zwar
> gut, aber alt, d.h. er unterstützt wohl immer noch kein C99 oder neuer.

Wenn man was neueres braucht und nicht auf C++ wechseln will/kann, gibt 
es im VS noch Clang/C2 (Clang with Microsoft CodeGen).

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ah, wird Zeit, daß ich mir mal wieder 'ne neuere Variante von VS 
'reinziehe.

Wenn die jetzt Clang können, dann ... kann bereits der Compiler ziemlich 
viel über lausigen Code ausspucken, das soll in Richtung lint o.ä. 
gehen.

von Vn N. (wefwef_s)


Lesenswert?

McSoße schrieb:
> Deswegen fragte ich nach speziellen Gründen gegen diese Sprache, denn
> mir würde nur der eine Grund einfallen, habe die richtige Praxis im
> Beruf allerdings noch nicht erlebt.

Fehleranfälligkeit, gerade in Großprojekten.
Fehlender Support von Objektorientierung.
Fehlender Support von generischer Programmierung.
Mangelhafte Typsicherheit.

"The C language combines all the power of assembly language with all the 
ease-of-use of assembly language."

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Man kann sehr wohl auch in C stabile, sichere und wartbare Software 
produzieren, nur muss man das halt können.

Andere Sprachen nehmen einen etwas mehr an die Hand und halten einen 
davon ab, sich in den Fuß zu schießen. Manche sind dann erheblich 
komplexer, andere sind einfach nur ... anders.

Und jede bietet verbissenen Verfechtern die Möglichkeit, sie zu seiner 
persönlichen Ersatzreligion zu deklarieren und andere mit entsprechender 
Inbrunst zu hassen. Das Internet wäre um ca. 5% Datenvolumen reduziert, 
ließe man diese "Flamewars" weg - daß die restlichen 95% wiederum zu 
großen Teilen mit Katzenvideos und "Emojis" angefüllt sind, lässt 
allerdings diese "Flamewars" fast als so eine Art Normalität durchgehen 
...

von vn nn (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Man kann sehr wohl auch in C stabile, sichere und wartbare Software
> produzieren, nur muss man das halt können.

Natürlich kann man. Die Frage ist nur, was man sich alles antun will. 
Die Welt hat sich seit der Erfindung von C weitergedreht.
Und ja, ich schreibe beruflich mehr C, als C++. Und gerade mit den 
üblichen Problemen wie off-by-one oder randalierenden Pointern hat man 
bei letzterem halt kaum Probleme.

Rufus Τ. F. schrieb:
> Und jede bietet verbissenen Verfechtern die Möglichkeit, sie zu seiner
> persönlichen Ersatzreligion zu deklarieren und andere mit entsprechender
> Inbrunst zu hassen.

So kann man auf berechtigte Kritik auch reagieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

vn nn schrieb:
> So kann man auf berechtigte Kritik auch reagieren.

So kann man den Satz auch missverstehen. Lies' ihn einfach nochmal, der 
bezieht sich auf jede beliebige Programmiersprache und nicht nur auf 
Leute, die C mögen oder nicht mögen.

Vielleicht fällt Dir jetzt was auf, insbesondere, wenn Du Deine Reaktion 
betrachtest ...

von vn nn (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Vielleicht fällt Dir jetzt was auf, insbesondere, wenn Du Deine Reaktion
> betrachtest ...

Nun, ich habe zu keiner Sprache besonders starke Emotionen, ist ja nur 
ein Werkzeug. Einzige Ausnahme, Java, da hab ich tatsächlich ein Problem 
mit.

von guest (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Ah, wird Zeit, daß ich mir mal wieder 'ne neuere Variante von VS
> 'reinziehe.
>
> Wenn die jetzt Clang können, dann ... kann bereits der Compiler ziemlich
> viel über lausigen Code ausspucken, das soll in Richtung lint o.ä.
> gehen.

Da gibt es zwei Varianten. Einmal oben genanntes Clang/C2, ist das Clang 
Frontend plus Microsofts C2 Codegenerator und Microsofts Lib/Link etc.

Die zweite Variante ist die komplette LLVM Toolchain via VS Extension:
https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain

von Eric B. (beric)


Lesenswert?

McSoße schrieb:
> [ich möchte] technische Informatik
> oder reine Informatik und vlt noch Mathematik (Doppelstudium) studieren,
> deswegen ist C sehr wichtig.

Nöh. Das Informatik-Studium bringt dir nicht programmieren in C bei, 
sondern Grundlagen, womit du in beliebige Programmiersprache dein Zeug 
implementieren kannst: Java, Haskell, C/C++, Rust oder sogar Whitespace. 
Nur von INTERCAL würde ich dir abraten ;-)

von McSoße (Gast)


Lesenswert?

Eric B. schrieb:
> McSoße schrieb:
> [ich möchte] technische Informatik
> oder reine Informatik und vlt noch Mathematik (Doppelstudium) studieren,
> deswegen ist C sehr wichtig.
>
> Nöh. Das Informatik-Studium bringt dir nicht programmieren in C bei,
> sondern Grundlagen, womit du in beliebige Programmiersprache dein Zeug
> implementieren kannst: Java, Haskell, C/C++, Rust oder sogar Whitespace.
> Nur von INTERCAL würde ich dir abraten ;-)

Habe ich ja auch in keinen Satz bezweifelt?
Dennoch ist es sehr wichtig für ein paar Module.

von A. S. (Gast)


Lesenswert?

An den TO: da Du kein Beispiel posten möchtest, also auch keine 
Diskussion was sauberer und was gefrickelter Code ist, kannst Du Dir das 
auch selbst erarbeiten, indem Du Warnungen einschaltest.

Für eine Note an der Uni mag was gefrickeltes ausreichen, für echte SW 
ist das tödlich. Man kann SW nicht "gut"-testen. Ein Debugger hilft 
dabei, die geschriebenen Anweisungen zu verstehen/verifizieren. Das darf 
aber nicht zum "ausprobieren bis es klappt" ausarten, da man dann das 
nächste Geschütz (
Valgrind) braucht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.