Ich habe den folgenden Code:
%Vor%Es kompiliert OK mit "gcc -Wall -ansi -pedantic". Aber mit einer anderen Toolchain (Rowley) klagt es über
%Vor%in der Zeile wo char ** t ist. Ist das wirklich illegaler Code oder ist es in Ordnung?
Danke für die Antwort. Ich weiß jetzt, wo mein Problem war. Es wirft jedoch eine neue Frage auf:
Obwohl array1
in der Praxis zu einem Zeiger vom Typ char **
zerfallen sollte, ist sein realer Typ tatsächlich char *[3]
, daher die Warnung.
Um die Warnung zu unterdrücken, könnten Sie versuchen, sie explizit zu formulieren:
%Vor%Zeiger und Arrays und nur in statischem Umfang kompatibel. Im globalen Gültigkeitsbereich sind ein Zeiger und ein Array nicht identisch, ein Mischen der beiden führt zu undefiniertem Verhalten. Also meiner Meinung nach ist die Warnung korrekt.
Versuchen Sie es mit:
%Vor%in einem Modul und:
%Vor%in einem anderen, kompilieren und verknüpfen. (Ich habe es nicht versucht ...) Ich würde erwarten, dass Dinge schiefgehen ...