FAQ:Lint

[ FAQ in de.comp.lang.c ]


Diese FAQ bezieht sich in ihrer Gänze auf den inzwischen nicht mehr aktuellen ISO-C Standard 9899:1990, vielfach auch als C90 bezeichnet. Der seit Dezember 1999 existierende neue ISO 9899:1999 Standard (oder auch C99) wird nicht berücksichtigt.


[ Inhalt ][ Index ][ ZurÜck ][ Weiter ]


Frage 13.1: Ich habe dieses Programm eingetippt und es verhält sich seltsam. Was könnte daran falsch sein?

Antwort: Vielen Fehlern kommt man mit lint auf die Spur (evtl. mit -a, -c, -h, -p und/oder anderen Optionen). Viele C Compiler sind in Wirklichkeit nur halbe Compiler, nicht dazu ausersehen, verschiedene Quellcode-Probleme zu erkennen, wodurch die Erzeugung von nicht funktionierendem Code verhindert werden könnte.


Frage 13.2: Wie kann ich die Message: "warning: possible pointer alignment problem", die lint bei jedem Aufruf von malloc erzeugt, abschalten.

Antwort: Das Problem besteht darin, dass herkömmliche Versionen von lint nicht wissen, und es ihnen auch nicht mitgeteilt werden kann, dass malloc einen Zeiger auf einen Bereich zurückgibt, der zur Speicherung beliebiger Objekttypen geeignet ist. Es ist möglich, eine Pseudo-Implementation von malloc zu liefern, die innerhalb eines "#ifdef lint" mit einem #define diese Warnung abschaltet. Aber eine solch einfache Definition unterdrückt auch wichtige Messages über wirklich fehlerhafte Aufrufe. Es dürfte einfacher sein, diese Message zu ignorieren, vielleicht auf automatisierte Art und Weise mit grep -v.


Frage 13.3: Wo kann ich ein ANSI-kompatibles lint bekommen ?

Antwort: Ein Produkt namens FlexeLint ist erhältlich (als "verborgener Quellcode", zur Übersetzung auf den meisten Systemen) bei

	Gimpel Software
	3207 Hogarth Lane
	Collegeville, PA  19426  USA
	(+1) 610 584 4261
	gimpel@netaxs.com

Das lint von System V release 4 ist ANSI-kompatibel und ist einzeln erhältlich (gebündelt mit anderen C-Tools) von den UNIX Support Labs oder von den System V Wiederverkäufern.

Ein weiteres ANSI-kompatibles lint (das auch eine bessere formale Prüfung durchführen kann) ist LCLint, erhältlich unter

	ftp://ftp.sds.lcs.lcs.mit.edu/pub/lclint
	http://www.sds.lcs.mit.edu/lclint

In Ermangelung von lint versuchen viele moderne Compiler die meisten Probleme so zu erkennen, wie ein gutes lint es tun würde.

[ Inhalt ][ Index ][ ZurÜck ][ Weiter ]


[ FAQ Logo ]   © 1997-2004 Jochen Schoof (joscho@bigfoot.de)
Diese Version wurde am 14. März 2004 erzeugt. Sie wird zukünftig nicht weiter gepflegt.